As mentioned in this blog, I was recently installing a new 7.3 P05 environment. Actually, this environment was in HA and it was the first silent installation of a Remote Content Server for me. I already created a lot of blogs related to issues with the CS 7.3 but since this was my first RCS 7.3 installation, I was kind of expecting to face some issues… I wasn’t disappointed!

 

So let’s start with the first issue I faced during the creation of the Content-File Server (CFS) on the Remote Content Server. As always, I prepared the properties file with all the needed information for a RCS (the properties file isn’t the same as for a normal docbase creation on the Primary CS) and then I launched the process to install the CFS in silent for my Global Registry. After only 30 seconds or so, the installation was “done” so I knew something wasn’t right… When you install a CFS, if there is no docbroker present on the host, it will install one before creating the docbase… Please note that below, the docbroker was already created using a previous silent script so here, I’m just trying to create the CFS.

 

The problem with the silent installation is that if something goes wrong, you absolutely have no feedback… Using the GUI, you always have a message (more or less meaningful) printed on the screen so you know something wasn’t right and you can start checking why. So as a best practice, I would recommend to always check the installation log file for errors when using the silent installation.

 

So what is printed in the installation log file? (don’t look at the first WARN message, it’s because there is no global registry locally, yet)

[dmadmin@content-server-02 ~]$ cd $DM_HOME/install/logs
[dmadmin@content-server-02 logs]$ cat install.log
10:57:51,620  INFO [main] com.documentum.install.shared.installanywhere.actions.InitializeSharedLibrary - Done InitializeSharedLibrary ...
10:57:51,640  INFO [main] com.documentum.install.multinode.cfs.installanywhere.actions.DiWAServerCfsInitializeImportantServerVariables - The installer is gathering system configuration information.
10:57:51,651  INFO [main] com.documentum.install.server.installanywhere.actions.DiWASilentRemoteServerValidation - Start to verify the password
10:57:52,088  INFO [main] com.documentum.fc.client.security.impl.JKSKeystoreUtilForDfc - keystore file name is /tmp/104190.tmp/dfc.keystore
10:57:52,445  INFO [main] com.documentum.fc.client.security.internal.CreateIdentityCredential$MultiFormatPKIKeyPair - generated RSA (2,048-bit strength) mutiformat key pair in 334 ms
10:57:52,473  INFO [main] com.documentum.fc.client.security.internal.CreateIdentityCredential - certificate created for DFC <CN=dfc_q5Dd2d8FbuDOh98h1Ef2aeEcp3a,O=EMC,OU=Documentum> valid from Thu Sep 7 10:52:52 UTC 2017 to Sun Sep 5 10:57:52 UTC 2027:

10:57:52,474  INFO [main] com.documentum.fc.client.security.impl.JKSKeystoreUtilForDfc - keystore file name is /tmp/104190.tmp/dfc.keystore
10:57:52,485  INFO [main] com.documentum.fc.client.security.impl.InitializeKeystoreForDfc - [DFC_SECURITY_IDENTITY_INITIALIZED] Initialized new identity in keystore, DFC alias=dfc, identity=dfc_q5Dd2d8FbuDOh98h1Ef2aeEcp3a
10:57:52,486  INFO [main] com.documentum.fc.client.security.impl.AuthenticationMgrForDfc - identity for authentication is dfc_q5Dd2d8FbuDOh98h1Ef2aeEcp3a
10:57:52,490  INFO [main] com.documentum.fc.impl.RuntimeContext - DFC Version is 7.3.0040.0025
10:57:52,504  INFO [Timer-2] com.documentum.fc.client.impl.bof.cache.ClassCacheManager$CacheCleanupTask - [DFC_BOF_RUNNING_CLEANUP] Running class cache cleanup task
10:57:52,512  WARN [main] com.documentum.fc.client.security.internal.RegistrationMgr - [DFC_SECURITY_GR_PUBLICATION_FAILED] Publication of DFC instance with global registry failed
DfException:: THREAD: main; MSG: [DFC_BOF_GLOBAL_REGISTRY_NOT_CONFIGURED] A global registry is not configured; ERRORCODE: ff; NEXT: null
        at com.documentum.fc.client.security.impl.DfcIdentityPublisher.<init>(DfcIdentityPublisher.java:51)
        ...
        at com.zerog.lax.LAX.main(Unknown Source)
10:57:52,955  INFO [main] com.documentum.fc.client.impl.connection.docbase.DocbaseConnection - Object protocol version 2
10:57:52,984  INFO [main] com.documentum.fc.client.security.internal.AuthenticationMgr - new identity bundle <dfc_q5Dd2d8FbuDOh98h1Ef2aeEcp3a  1602102952       content-server-02         hudL6VVqhfy1whQlqbqfn3xZoOlola5zscimwba4o0MDQbigdzAOi+l54BHFvqc/3auMipaihywp65a5bR4vqvzP55CzzuFjSD+UZa3vJOGiwpKlctdmg45Kl0aOTwrfYH5jEupQ79oUVNY1cNQmAxn3odYFwguvaEp3VxezAbO+cPh8svnKjhvZJm/DFVrmdLnGPu+PHf3jWHbYSfhc+TWDLPqk8dlFTzJTjLnGLnGPu+PHf3jWHbYSfhc+TWDLPqk/13OmxsnXcSUL59QbhU+BBW2/4lsXvSvwxP/8A+/GKsGPSLoTFZJ2nlbJnq0TX5XWPTAG7Emgjeil35cbfax6D/rUQp8kHWPlLWtPvpOaKQ==>
10:57:54,477  INFO [main] com.documentum.fc.client.impl.connection.docbase.DocbaseConnection - Object protocol version 2
10:57:54,526  INFO [main] com.documentum.install.server.installanywhere.actions.DiWASilentRemoteServerValidation - Server config object name is invalid
10:57:54,526 ERROR [main] com.documentum.install.server.installanywhere.actions.DiWASilentRemoteServerValidation - Server config name only can contain characters: A-Z, a-z, 0-9, underscore(_) and dot(.)
com.documentum.install.shared.common.error.DiException: Server config name only can contain characters: A-Z, a-z, 0-9, underscore(_) and dot(.)
        at com.documentum.install.server.installanywhere.actions.DiWASilentRemoteServerValidation.setup(DiWASilentRemoteServerValidation.java:82)
        at com.documentum.install.shared.installanywhere.actions.InstallWizardAction.install(InstallWizardAction.java:75)
        at com.zerog.ia.installer.actions.CustomAction.installSelf(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.an(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.am(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runNextInstallPiece(Unknown Source)
        at com.zerog.ia.installer.ConsoleBasedAAMgr.ac(Unknown Source)
        at com.zerog.ia.installer.AAMgrBase.runPreInstall(Unknown Source)
        at com.zerog.ia.installer.LifeCycleManager.consoleInstallMain(Unknown Source)
        at com.zerog.ia.installer.LifeCycleManager.executeApplication(Unknown Source)
        at com.zerog.ia.installer.Main.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.zerog.lax.LAX.launch(Unknown Source)
        at com.zerog.lax.LAX.main(Unknown Source)
10:57:54,527  INFO [main]  - The INSTALLER_UI value is SILENT
10:57:54,527  INFO [main]  - The KEEP_TEMP_FILE value is true
10:57:54,527  INFO [main]  - The common.installOwner.password value is ******
10:57:54,527  INFO [main]  - The SERVER.SECURE.ROOT_PASSWORD value is ******
10:57:54,527  INFO [main]  - The common.upgrade.aek.lockbox value is null
10:57:54,527  INFO [main]  - The common.old.aek.passphrase.password value is null
10:57:54,527  INFO [main]  - The common.aek.algorithm value is AES_256_CBC
10:57:54,527  INFO [main]  - The common.aek.passphrase.password value is ******
10:57:54,527  INFO [main]  - The common.aek.key.name value is CSaek
10:57:54,527  INFO [main]  - The common.use.existing.aek.lockbox value is null
10:57:54,528  INFO [main]  - The SERVER.ENABLE_LOCKBOX value is true
10:57:54,528  INFO [main]  - The SERVER.LOCKBOX_FILE_NAME value is lockbox.lb
10:57:54,528  INFO [main]  - The SERVER.LOCKBOX_PASSPHRASE.PASSWORD value is ******
10:57:54,528  INFO [main]  - The SERVER.COMPONENT_ACTION value is CREATE
10:57:54,528  INFO [main]  - The SERVER.DOCBROKER_ACTION value is null
10:57:54,528  INFO [main]  - The SERVER.PRIMARY_CONNECTION_BROKER_HOST value is content-server-01
10:57:54,528  INFO [main]  - The SERVER.PRIMARY_CONNECTION_BROKER_PORT value is 1489
10:57:54,528  INFO [main]  - The SERVER.PROJECTED_CONNECTION_BROKER_HOST value is content-server-02
10:57:54,528  INFO [main]  - The SERVER.PROJECTED_CONNECTION_BROKER_PORT value is 1489
10:57:54,528  INFO [main]  - The SERVER.FQDN value is content-server-02
10:57:54,528  INFO [main]  - The SERVER.DOCBASE_NAME value is GR_DocBase
10:57:54,528  INFO [main]  - The SERVER.PRIMARY_SERVER_CONFIG_NAME value is GR_DocBase
10:57:54,528  INFO [main]  - The SERVER.REPOSITORY_USERNAME value is dmadmin
10:57:54,528  INFO [main]  - The SERVER.SECURE.REPOSITORY_PASSWORD value is ******
10:57:54,528  INFO [main]  - The SERVER.REPOSITORY_USER_DOMAIN value is
10:57:54,529  INFO [main]  - The SERVER.REPOSITORY_USERNAME_WITH_DOMAIN value is dmadmin
10:57:54,529  INFO [main]  - The SERVER.REPOSITORY_HOSTNAME value is content-server-01
10:57:54,529  INFO [main]  - The SERVER.CONNECTION_BROKER_NAME value is null
10:57:54,529  INFO [main]  - The SERVER.CONNECTION_BROKER_PORT value is null
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_NAME value is
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_PORT value is
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_CONNECT_MODE value is null
10:57:54,529  INFO [main]  - The SERVER.USE_CERTIFICATES value is false
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_KEYSTORE_FILE_NAME value is null
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_KEYSTORE_PASSWORD_FILE_NAME value is null
10:57:54,529  INFO [main]  - The SERVER.DOCBROKER_CIPHER_LIST value is null
10:57:54,529  INFO [main]  - The SERVER.DFC_SSL_TRUSTSTORE value is null
10:57:54,529  INFO [main]  - The SERVER.DFC_SSL_TRUSTSTORE_PASSWORD value is ******
10:57:54,529  INFO [main]  - The SERVER.DFC_SSL_USE_EXISTING_TRUSTSTORE value is null
10:57:54,529  INFO [main]  - The SERVER.CONNECTION_BROKER_SERVICE_STARTUP_TYPE value is null
10:57:54,529  INFO [main]  - The SERVER.DOCUMENTUM_DATA value is $DOCUMENTUM/data
10:57:54,530  INFO [main]  - The SERVER.DOCUMENTUM_SHARE value is $DOCUMENTUM/share
10:57:54,530  INFO [main]  - The CFS_SERVER_CONFIG_NAME value is content-server-02_GR_DocBase
10:57:54,530  INFO [main]  - The SERVER.DOCBASE_SERVICE_NAME value is GR_DocBase
10:57:54,530  INFO [main]  - The CLIENT_CERTIFICATE value is null
10:57:54,530  INFO [main]  - The RKM_PASSWORD value is ******
10:57:54,530  INFO [main]  - The SERVER.DFC_BOF_GLOBAL_REGISTRY_VALIDATE_OPTION_IS_SELECTED value is true
10:57:54,530  INFO [main]  - The SERVER.PROJECTED_DOCBROKER_PORT_OTHER value is 1489
10:57:54,530  INFO [main]  - The SERVER.PROJECTED_DOCBROKER_HOST_OTHER value is content-server-01
10:57:54,530  INFO [main]  - The SERVER.GLOBAL_REGISTRY_REPOSITORY value is GR_DocBase
10:57:54,530  INFO [main]  - The SERVER.BOF_REGISTRY_USER_LOGIN_NAME value is dm_bof_registry
10:57:54,530  INFO [main]  - The SERVER.SECURE.BOF_REGISTRY_USER_PASSWORD value is ******
10:57:54,530  INFO [main]  - The SERVER.COMPONENT_ACTION value is CREATE
10:57:54,530  INFO [main]  - The SERVER.COMPONENT_NAME value is null
10:57:54,530  INFO [main]  - The SERVER.DOCBASE_NAME value is GR_DocBase
10:57:54,531  INFO [main]  - The SERVER.CONNECTION_BROKER_NAME value is null
10:57:54,531  INFO [main]  - The SERVER.CONNECTION_BROKER_PORT value is null
10:57:54,531  INFO [main]  - The SERVER.PROJECTED_CONNECTION_BROKER_HOST value is content-server-02
10:57:54,531  INFO [main]  - The SERVER.PROJECTED_CONNECTION_BROKER_PORT value is 1489
10:57:54,531  INFO [main]  - The SERVER.PRIMARY_SERVER_CONFIG_NAME value is GR_DocBase
10:57:54,531  INFO [main]  - The SERVER.DOCBROKER_NAME value is
10:57:54,531  INFO [main]  - The SERVER.DOCBROKER_PORT value is
10:57:54,531  INFO [main]  - The SERVER.CONNECTION_BROKER_SERVICE_STARTUP_TYPE value is null
10:57:54,531  INFO [main]  - The SERVER.REPOSITORY_USERNAME value is dmadmin
10:57:54,531  INFO [main]  - The SERVER.REPOSITORY_PASSWORD value is ******
10:57:54,531  INFO [main]  - The SERVER.REPOSITORY_USER_DOMAIN value is
10:57:54,531  INFO [main]  - The SERVER.REPOSITORY_USERNAME_WITH_DOMAIN value is dmadmin
10:57:54,531  INFO [main]  - The SERVER.DFC_BOF_GLOBAL_REGISTRY_VALIDATE_OPTION_IS_SELECTED_KEY value is null
10:57:54,531  INFO [main]  - The SERVER.PROJECTED_DOCBROKER_PORT_OTHER value is 1489
10:57:54,531  INFO [main]  - The SERVER.PROJECTED_DOCBROKER_HOST_OTHER value is content-server-01
10:57:54,531  INFO [main]  - The SERVER.GLOBAL_REGISTRY_REPOSITORY value is GR_DocBase
10:57:54,532  INFO [main]  - The SERVER.BOF_REGISTRY_USER_LOGIN_NAME value is dm_bof_registry
10:57:54,532  INFO [main]  - The SERVER.SECURE.BOF_REGISTRY_USER_PASSWORD value is ******
10:57:54,532  INFO [main]  - The SERVER.COMPONENT_ACTION value is CREATE
10:57:54,532  INFO [main]  - The SERVER.COMPONENT_NAME value is null
10:57:54,532  INFO [main]  - The SERVER.PRIMARY_SERVER_CONFIG_NAME value is GR_DocBase
10:57:54,532  INFO [main]  - The SERVER.DOCBASE_NAME value is GR_DocBase
10:57:54,532  INFO [main]  - The SERVER.REPOSITORY_USERNAME value is dmadmin
10:57:54,532  INFO [main]  - The SERVER.REPOSITORY_PASSWORD value is ******
10:57:54,532  INFO [main]  - The SERVER.REPOSITORY_USER_DOMAIN value is
10:57:54,532  INFO [main]  - The SERVER.REPOSITORY_USERNAME_WITH_DOMAIN value is dmadmin
10:57:54,532  INFO [main]  - The env PATH value is: /usr/xpg4/bin:$JAVA_HOME/bin:$DM_HOME/bin:$DOCUMENTUM/dba:$ORACLE_HOME/bin:$JAVA_HOME/bin:$DM_HOME/bin:$DOCUMENTUM/dba:$ORACLE_HOME/bin:$DM_HOME/bin:$ORACLE_HOME/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/dmadmin/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
[dmadmin@content-server-02 logs]$

 

As you can see above, the installation fails because the properties aren’t “correct”. More specifically, the installation fails because the dm_server_config name provided doesn’t match the requirement/validation… Starting with the CS 7.3 GA release, the Content Server team introduced a new validation which force the dm_server_config name to only contains letters (lower/upper case), numbers, underscore or dot. If you are familiar with the Remote Content Servers, you should know that by default, the CFS installation will create a new dm_server_config object with a name that is “<hostname>_<service_name>”. So if you are installing a CFS for a docbase “GR_DocBase” with a service name set to “GR_DocBase” (it’s not mandatory the same value as the docbase name) on a Content Server with a hostname equal to “content-server-02”, then the dm_server_config will, by default, have the following name: content-server-02_GR_DocBase.

 

So if you compare this default value with the one from the log file, you will see that it is the same… Because I knew what default value the GUI Installer would have chosen, I therefore put this value in the silent properties file so that we keep our naming conventions on all our environments (7.3 or not). So this is the default value that the installer would have chosen and yet the installation fails and this is all because the hostname contains a simple dash… Funny, isn’t it?

 

Since this is clearly an issue, I opened a SR with OTX to ask them to either:

  • Explain why the dash (‘-‘) aren’t accepted in the dm_server_config name and since this is the default value, where it is documented that the hostname of the Content Servers cannot contain any dashs
  • Provide a hotfix for this issue and fix it in the next patch as well

 

OTX obviously recognized that this validation is too strict and they are therefore working on providing us a hotfix (via CS-57533) and implementing a more reliable validation. At the moment, I got a first draft hotfix that only solve the silent installation part (so the issue is still present using the GUI). I’m pretty sure it won’t be hard for OTX to solve that also on the GUI and to include the fix in a next patch but I don’t know which one at the moment!