Opentext Documentum 16.4 PostgreSQL Developer Edition

This is a step-by-step guide to install Documentum 16.4 in a Linux environment with PostgreSQL 9.6 (as we don’t have/I haven’t found the compatibility matrix, I’ve used the same version bundled in the docker image).


Windows 10 x64 8GB RAM
VMware Workstation Player 12

CentOS 7 x64 25GB HD 4GB RAM 2 cores
PostgreSQL 9.6
Documentum 16.4

VM Creation

Mount the CentOS 7 DVD image, boot the machine and follow the steps. You can choose to let EasyInstall do the work for you. I used minimal package install to save resources, named the machine vm-dctm16.4, configured the network and set the root password as well as a “dmadmin” user.

OS Configuration

  • Install required packages:

[dmadmin@vm-dctm164 ~]$ sudo yum install bash-completion kernel-devel rng-tools.x86_64
[dmadmin@vm-dctm164 ~]$ sudo yum install bash-completion kernel-devel rng-tools.x86_64 policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans expect tcl
[dmadmin@vm-dctm164 ~]$ sudo yum group install X\ Window\ System “Development Tools”
[root@vm-dctm164 vmtools]# yum install open-vm-tools.x86_64

  • Stop and disable the firewalld service:

[dmadmin@vm-dctm164 ~]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[dmadmin@vm-dctm164 ~]$ sudo systemctl stop firewalld

  • Configure the entropy and allow http connections through selinux:

[dmadmin@vm-dctm164 ~]$ sudo /sbin/rngd -b -r /dev/urandom -p /dev/random
[dmadmin@vm-dctm164 ~]$ sudo setsebool -P httpd_can_network_connect_db 1

PostgreSQL Configuration

  • Install required packages:

[dmadmin@vm-dctm164 ~]$ sudo yum install
[dmadmin@vm-dctm164 ~]$ sudo yum install postgresql96-server postgresql96-contrib

  • Init the DB:

[dmadmin@vm-dctm164 ~]$ sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

  • Enable and start the PostgreSQL service:

[dmadmin@vm-dctm164 ~]$ sudo systemctl enable postgresql-9.6
Created symlink from /etc/systemd/system/ to /usr/lib/systemd/system/postgresql-9.6.service.
[dmadmin@vm-dctm164 ~]$ sudo systemctl start postgresql-9.6

  • Configure the postgres user:

[dmadmin@vm-dctm164 ~]$ su – root
[root@vm-dctm164 ~]# su – postgres
-bash-4.2$ psql
postgres=# \password postgres
postgres=# \q
-bash-4.2$ exit

  • Configure PostgreSQL:

[root@vm-dctm164 ~]# vi /var/lib/pgsql/9.6/data/postgresql.conf
listen_addresses = ‘*’
port = 5432

[root@vm-dctm164 ~]# vi /var/lib/pgsql/9.6/data/pg_hba.conf
host    all             all               md5
host all all ::/128 md5
host    all             all             vm-dctm164              md5

  • Restart PostgreSQL service to apply the changes:

[dmadmin@vm-dctm164 /]$ sudo systemctl restart postgresql-9.6

phpPgAdmin Configuration

  • Install required packages:

[dmadmin@vm-dctm164 /]$ sudo yum install phpPgAdmin httpd

  • Configure phpPgAdmin:

[dmadmin@vm-dctm164 /]$ sudo vi /etc/httpd/conf.d/phpPgAdmin.conf

# Apache 2.4
Require all granted
#Require host

# Apache 2.2
Order deny,allow
 Allow from all
# Allow from
# Allow from ::1
# Allow from

[dmadmin@vm-dctm164 /]$ sudo vi /etc/phpPgAdmin/
$conf[‘servers’][0][‘host’] = ‘’;
$conf[‘extra_login_security’] = false;
$conf[‘owned_only’] = true;

  • Restart httpd service to apply the changes:

[dmadmin@vm-dctm164 /]$ sudo systemctl restart httpd

Now you should be able to login to the console from http://vm-dctm164/phpPgAdmin/

ODBC Configuration

  • Install required packages:

sudo yum install postgresql96-odbc.x86_64 unixODBC.x86_64

  • Configure .ini files:

[dmadmin@vm-dctm164 /]$ sudo vi /etc/odbcinst.ini
Description     = ODBC for PostgreSQL
#Driver         = /usr/lib/
#Setup          = /usr/lib/
#Driver64       = /usr/lib64/
#Setup64                = /usr/lib64/
Driver = /usr/pgsql-9.6/lib/
Driver64 = /usr/pgsql-9.6/lib/
Setup64 = /usr/lib64/
FileUsage       = 1

[dmadmin@vm-dctm164 /]$ sudo vi /etc/odbc.ini

  • Test the connection:

[dmadmin@vm-dctm164 /]$ isql -v MyPostgres
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
SQL> quit

Documentum server

  • Create folders:

[dmadmin@vm-dctm164 opt]$ sudo mkdir documentum
[dmadmin@vm-dctm164 opt]$ sudo chown dmadmin.dmadmin documentum
[dmadmin@vm-dctm164 opt]$ mkdir documentum/product
[dmadmin@vm-dctm164 opt]$ mkdir documentum/product/16.4
[dmadmin@vm-dctm164 opt]$ mkdir documentum/shared

  • Set up environment variables:

[dmadmin@vm-dctm164 ~]$ vi ~/.bash_profile

export DM_HOME


export PATH

export LC_ALL


  • Reserve ports for services:

[dmadmin@vm-dctm164 opt]$ sudo vi /etc/services
dctm164         50000/tcp               # dctm 16.4 repo
dctm164_s       50001/tcp               # dctm 16.4 repo

  • Create symbolic link for later (configuration program):

[dmadmin@vm-dctm164 opt]$ sudo ln -s /usr/lib64/ /usr/lib64/

  • Configure limits.conf:

[dmadmin@vm-dctm164 opt]$ sudo vi /etc/security/limits.conf
dmadmin – core -1

  • Run the installer:

[dmadmin@vm-dctm164 cs]$ tar xvf content_server_16.4_linux64_postgres.tar
[dmadmin@vm-dctm164 cs]$ chmod 777 serverSetup.bin
[dmadmin@vm-dctm164 cs]$ ./serverSetup.bin






Docbroker and repository

At this point, you can choose to run dmdbtest to make sure everything works. This versions seems to work with the OOTB libs from postgres and you don’t have to get the unstripped libs from the docker release.

  • Create the tablespace file for the repository (dctm164):

[dmadmin@vm-dctm164 cs]$ su –
[root@vm-dctm164 ~]# su – postgres
-bash-4.2$ mkdir /var/lib/pgsql/9.6/data/db_dctm164_dat.dat



Documentum Administrator

Nothing special about this, same procedure as always. I’ve used the latest tomcat 8 to deploy, as there are no requirements/supported versions matrix:



Some notes:

  • Documentation seems more “precise”, specially regarding the Linux install. However, there are still copy/paste sections from previous releases.
  • Only new (visible) feature in DA is the integration with iHub
  • Firefox extension doesn’t work in Firefox 60

7 thoughts on “Opentext Documentum 16.4 PostgreSQL Developer Edition

  1. Everything is weird there: UNIX filesystem permissions have three extra access modes:
    – SUID – defines that UNIX process inherits owner’s privileges
    – SGID – defines that UNIX process inherits group’s privileges
    – Sticky Bit – defines that nobody except root and file’s owner is able to delete files from public directory (in UNIX deleting file is actually directory operation)

    Below is what we had in D72:

    grep -e “chmod\|chown” /u01/documentum/cs/dba/dm_root_task | grep -v echo
    chown root /u01/documentum/cs/dba/dm_check_password
    chmod 6750 /u01/documentum/cs/dba/dm_check_password
    chown root /u01/documentum/cs/dba/dm_secure_writer
    chmod 6750 /u01/documentum/cs/dba/dm_secure_writer
    chown root /u01/documentum/cs/dba/dm_assume_user
    chmod 6750 /u01/documentum/cs/dba/dm_assume_user
    chown root /u01/documentum/cs/dba/dm_change_password.local
    chmod 6750 /u01/documentum/cs/dba/dm_change_password.local
    chown root /u01/documentum/cs/dba/dm_change_password.yp
    chmod 6750 /u01/documentum/cs/dba/dm_change_password.yp
    chown root /u01/documentum/cs/product/7.2/install/admin/dmliswap
    chmod 6750 /u01/documentum/cs/product/7.2/install/admin/dmliswap

    So, it should be clear that Documentum was using SUID/SGID capabilities but not Sticky Bit. :LOL


  2. Same grep in 16.4:

    chown root /opt/documentum/dba/dm_secure_writer_cs16.4
    chmod 6750 /opt/documentum/dba/dm_secure_writer_cs16.4
    chown root /opt/documentum/product/16.4/install/admin/dmliswap
    chmod 6750 /opt/documentum/product/16.4/install/admin/dmliswap


  3. I set up Documentum in a virtual maschine with this instructions. However I am not able to connect from my host system to it. I think because it says me that port 1489 refuses the connection. However the firewall is disabled and I also tried to specificly allow traffic through this port. But still refused. Port 80 for example works fine. How do I solve this problem?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.