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 DOCUMENTUMDM_HOME=$DOCUMENTUM/product/16.7
export DM_HOMEPOSTGRESQL_HOME=/usr/pgsql-11
export POSTGRESQL_HOMEJAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.4.11-1.el7_7.x86_64
export JAVA_HOMEPATH=$PATH:$DM_HOME/bin:$POSTGRESQL_HOME/bin:$HOME/.local/bin:$HOME/bin:$JAVA_HOME/bin
export PATHLC_ALL=C
export LC_ALLLD_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
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
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:
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!
[…] You can just follow the procedure described in Opentext Documentum 16.7 PostgreSQL Developer Edition […]
LikeLike
[…] instructions on any of the previous guides (Opentext Documentum 16.4 PostgreSQL Developer Edition, Opentext Documentum 16.7 PostgreSQL Developer Edition) to get PostgreSQL running, then create a new database. I’ve used phpPgAdmin to create a user […]
LikeLike
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?
LikeLike
just remove those and check if it starts. Anyway, Tomcat log should have some information related to why it’s not starting
LikeLike
Have you also tried installing Documentum D2 as front end?
LikeLike
What do you mean? installing D2?
LikeLike
Sorry I mean Documentum D2. One of the frontend of Documentum aside from DA and Webtop. I followed your instructions but I installed it in a Windows environment and it’s running well.with DA and Webtop. I tried installing D2 to my dev environment but cannot seem to install it using OpenJDK might be because it needs a JRE. D2 installer is a JAR file.
LikeLike
Umm, the guide on this blog for 4.6 should work for you. It’s a normal install, and it should work with openjdk, which issue are you having?
LikeLike
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?
LikeLike
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.
LikeLike
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”
LikeLike
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.
LikeLike
if you stop/start the container you’ll “keep” your “state”. If you create another instance, the repository will be recreated on the new container.
LikeLike
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?
LikeLike
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.
LikeLike