Opentext Documentum 16.7 PostgreSQL Developer Edition

This is a step-by-step guide to install Documentum 16.7 in a Linux environment with PostgreSQL 11.

Environment

Host:
Windows 10 x64 8GB RAM
VMware Workstation Player 15

Guest:
CentOS 7.7 x64 25GB HD 4GB RAM 2 cores
PostgreSQL 11
Documentum 16.7

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 dctm167, configured the network and set the root password as well as a “dmadmin” user.

OS Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install bash-completion kernel-devel rng-tools.x86_64
[dmadmin@dctm167 ~]$ sudo yum -y 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@dctm167 ~]$ sudo yum -y group install X\ Window\ System “Development Tools”
[dmadmin@dctm167 ~]$ sudo yum -y install open-vm-tools.x86_64

  • Stop and disable the firewalld service:

[dmadmin@dctm167 ~]$ sudo systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[dmadmin@dctm167 ~]$ sudo systemctl stop firewalld

  • Configure entropy and allow http connections through selinux:

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

PostgreSQL Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm
[dmadmin@dctm167 ~]$ sudo yum -y install postgresql11 postgresql11-server

  • Init the DB:

[dmadmin@dctm167 ~]$ sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

  • Enable and start the PostgreSQL service:

[dmadmin@dctm167 ~]$ sudo systemctl enable postgresql-11
Created symlink from /etc/systemd/system/multi-user.target.wants/postgresql-11.service to /usr/lib/systemd/system/postgresql-11.service.
[dmadmin@dctm167 ~]$ sudo systemctl start postgresql-11

  • Configure the postgres user:

[dmadmin@dctm167 ~]$ sudo passwd postgres
Changing password for user postgres.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

[dmadmin@dctm167 ~]$ su – postgres
-bash-4.2$ psql
psql (11.5)
Type “help” for help.

postgres=#
postgres=# \password postgres
Enter new password:
Enter it again:
postgres=# \q
-bash-4.2$ exit

  • Configure PostgreSQL:

[root@dctm167 ~]# vi /var/lib/pgsql/11/data/postgresql.conf
listen_addresses = ‘*’
port = 5432

[root@dctm167 ~]# vi /var/lib/pgsql/11/data/pg_hba.conf
host    all             all             127.0.0.1/32            md5
host all all ::/128 md5
host    all             all             dctm167              md5

  • Restart PostgreSQL service to apply the changes:

[dmadmin@dctm167 ~]$ sudo systemctl restart postgresql-11

phpPgAdmin Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install phpPgAdmin httpd

  • Configure phpPgAdmin:

[dmadmin@dctm167 ~]$ sudo vi /etc/httpd/conf.d/phpPgAdmin.conf

Alias /phpPgAdmin /usr/share/phpPgAdmin

# Apache 2.4
Require all granted
#Require host example.com

# Apache 2.2
Order deny,allow
Allow from all
#Allow from 127.0.0.1
#Allow from ::1
# Allow from .example.com

[dmadmin@dctm167 ~]$ sudo vi /etc/phpPgAdmin/config.inc.php-dist

$conf[‘servers’][0][‘host’] = ‘dctm167’;
$conf[‘extra_login_security’] = false;
$conf[‘owned_only’] = true;

[dmadmin@dctm167 ~]$ sudo cp /etc/phpPgAdmin/config.inc.php-dist /etc/phpPgAdmin/config.inc.php

  • Restart httpd service to apply the changes:

[dmadmin@dctm167 ~]$ sudo systemctl restart httpd

Now you should be able to login to the console from http://dctm167/phpPgAdmin/

ODBC Configuration

  • Install required packages:

[dmadmin@dctm167 ~]$ sudo yum -y install postgresql11-odbc.x86_64 unixODBC.x86_64

  • Configure .ini files:

[dmadmin@dctm167 ~]$ sudo vi /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
#Driver = /usr/lib/psqlodbcw.so
#Setup = /usr/lib/libodbcpsqlS.so
#Driver64 = /usr/lib64/psqlodbcw.so
#Setup64 = /usr/lib64/libodbcpsqlS.so
Driver = /usr/pgsql-11/lib/psqlodbcw.so
Driver64 = /usr/pgsql-11/lib/psqlodbcw.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
[dmadmin@dctm167 ~]$ sudo vi /etc/odbc.ini
[MyPostgres]
Description=PostgreSQL
Driver=PostgreSQL
Database=postgres
Servername=dctm167
UserName=postgres
Password=dmadmin
Port=5432
Protocol=11
ReadOnly=No
RowVersioning=No
ShowSystemTables=No
ShowOidColumn=No
FakeOidIndex=No
UpdateableCursors=Yes
DEBUG=Yes

  • Test the connection:

[dmadmin@dctm167 ~]$ isql -v MyPostgres
+—————————————+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+—————————————+
SQL> quit

Documentum server

  • Create folders:

[dmadmin@dctm167 ~]$ sudo mkdir -p /opt/documentum && sudo chown dmadmin.dmadmin /opt/documentum && mkdir /opt/documentum/product && mkdir /opt/documentum/product/16.7 && mkdir -p /opt/documentum/sw/cs

  • Install openJDK 11 (remember to remove “anon” from the list of disabled algorithms or the installer will fail to connect to the repository)

[dmadmin@dctm167 cs]$ sudo yum -y install java-11-openjdk java-11-openjdk-devel
[dmadmin@dctm167 cs]$ echo $(dirname $(dirname $(readlink $(readlink $(which javac)))))
/usr/lib/jvm/java-11-openjdk-11.0.4.11-1.el7_7.x86_64

  • Set up environment variables:

[dmadmin@dctm167 ~]$ vi ~/.bash_profile
DOCUMENTUM=/opt/documentum
export DOCUMENTUM

DM_HOME=$DOCUMENTUM/product/16.7
export DM_HOME

POSTGRESQL_HOME=/usr/pgsql-11
export POSTGRESQL_HOME

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.4.11-1.el7_7.x86_64
export JAVA_HOME

PATH=$PATH:$DM_HOME/bin:$POSTGRESQL_HOME/bin:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin
export PATH

LC_ALL=C
export LC_ALL

LD_LIBRARY_PATH=$POSTGRESQL_HOME/lib:$DM_HOME/bin:$DOCUMENTUM/java64/JAVA_LINK/jre/lib/amd64/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

  • Reserve ports for services:

[dmadmin@dctm167 ~]$ sudo vi /etc/services
dctm167 50000/tcp # dctm 16.7 repo
dctm167_s 50001/tcp # dctm 16.7 repo

  • Create symbolic link for later (configuration program):

[dmadmin@dctm167 ~]$ sudo ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2

  • Configure limits.conf:

[dmadmin@dctm167 ~]$ sudo vi /etc/security/limits.conf
dmadmin – core -1

  • Run the installer:

[dmadmin@dctm167 cs]$ tar -xvf content_server_16.7_linux64_postgres.tar
[dmadmin@dctm167 cs]$ chmod 777 serverSetup.bin
[dmadmin@dctm167 cs]$ ./serverSetup.bin

01020304050607

Docbroker and repository

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

[dmadmin@dctm167 cs]$ su –
[root@dctm167 ~]# su – postgres
-bash-4.2$ mkdir /var/lib/pgsql/11/data/db_dctm167_dat.dat
-bash-4.2$ exit
[root@dctm167 ~]# exit

  • Run the configurator:

[dmadmin@dctm167 install]$ ./dm_launch_server_config_program.sh

0809101112131415161718192021222324252627282930

 

Documentum Administrator

Nothing special about this, same procedure as always. I’ve used the latest tomcat 9 to deploy running on the same openJDK 11 used for the repository:

31

Some notes:

  • Java is not bundled anymore, you need to install a JDK before running the installer. (Be aware of the issues with Java >1.8u201, as the “anon” algorithm has been disabled and if you choose any secure configuration you’ll face some issues while installing)
  • No lockbox!

15 thoughts on “Opentext Documentum 16.7 PostgreSQL Developer Edition

  1. Thanks for the guide. I tried installing this but in Windows Server 2016. Unfotunately i encountered some errors on the webapp part. Whenever I enter this in the Java options Tomcat won’t start,

    -Xms1024m
    -Xmx1024m
    -XX:PermSize=128m
    -XX:MaxPermSize=128m
    -XX:+UseParallelOldGC
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled

    Is this still necessary in Tomcat 9?

    Like

  2. Thanks for the guide.
    This is the first time I used PostgreSQL in installing Documentum (I usually use MSSQL). but my environment is running in Windows Server 2016.

    One problem though I encountered was with Tomcat, when ever I add the usual script in Java options

    -Xms1024m
    -Xmx1024m
    -XX:PermSize=128m
    -XX:MaxPermSize=128m
    -XX:+UseParallelOldGC
    -XX:+CMSClassUnloadingEnabled
    -XX:+CMSPermGenSweepingEnabled

    Tomcat won’t start. Is this still necessary in Tomcat 9?

    Like

  3. Hi there! I’ve been trying non-stop to get this running following this bit by bit, still haven’t been able to pull it out.

    I’ve basically copied over everything you’ve written in here in a CentOS virtualized environment running Docker containers within it and still no luck, i keep getting PostgreSQL connection issues. Any clues? I could elaborate on this even deeper if needed.

    Like

    • can you get the install logs? there should be some info on the error in the container. There are 2 main logs, one is (I may remember incorrectly the paths) /opt/dctm_install/logs and the other is the install log from documentum ($DOCUMENTUM/16.7/product/install/logs)

      Remember that if you have to restart/rebuild you have to remove/purge the volumes, as the data is still there and the image is not “refreshed”

      Like

      • Okay, to be trully honest, i don’t really know how but I finally managed to get it running.
        If i need to turn container off, when I re run it, will it reinstall the whole thing or maintain what it currently has?

        There are only dumbs who ask questions, no dumb questions whatsoever. 🙂

        Thanks in advance, been having it rough for at least two weeks on this one.

        Like

  4. Hello,
    I want to Thank you for this blog. Sharing is caring.
    Also I’ve some notes about installation steps.

    This is about Set up environment variables step.
    First is about LD_LIBRARY_PATH
    In LD_LIBRARY_PATH there is no such directory “$DOCUMENTUM/java64/JAVA_LINK/jre/lib/amd64/server”.
    In my installed directory “$DOCUMENTUM/java64/JAVA_LINK/lib/server”.

    Second is about PATH
    $POSTGRESQL_HOME/bin
    If I’m going to set this path to bash_profile then I will get error about PostgreSQL. I don’t want to go error detail. I did research on log files and found this during CS installation. In log files I found $POSTGRESQL_HOME/bin/bin and this causes an error. It seems that CS puts extra /bin to PostgreSQL home variable. I’ve removed /bin in my bash_profile and it worked. This is my PATH. export PATH=$JAVA_HOME/bin:$DM_HOME/bin:$DOCUMENTUM/dba:$MTHSRV/server:$MTHSRV/bin:$POSTGRESQL_HOME:$PATH
    I’m installing the following postgresql client packages in Linux

    1.postgresql11-libs-11.6-2PGDG.rhel8.x86_64
    2.postgresql11-11.6-2PGDG.rhel8.x86_64
    3.postgresql11-odbc-12.00.0000-1PGDG.rhel8.x86_64

    What do you think? Second is a bug or something wrong with my installation?

    Like

    • LD_LIBRARY_PATH is probably my fault, maybe it is from the previous version where Java was bundled. I didn’t install any client package for Postgres, so it’s may be something wrong with your install, as the CS install should work OOTB with just the odbc driver. Try with the same package version I used, maybe CS is not compatible with newer.

      Like

Leave a comment

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