In the past several months, we have been extensively working on setting up a CI/CD pipeline for Documentum at one of our customer. As part of this project, we are using Kubernetes pods for Documentum components. In this blog, I will talk about an issue caused by what seemed like a good idea but finally, not so much…

The goal of this project is to migrate dozens of Documentum environments and several hundred of VMs into K8s pods. In order to streamline the migration and simplify the management, we thought: why not try to use K8s Services (ingres) for all the communications between the pods as well as external to K8s. Indeed, we needed to take into account several interfaces outside of the K8s world, usually some old software that would most probably never support containerization and such. These interfaces will need to continue to work in the way they used to so we will need K8s Services at some point for the communications between Documentum and these external interfaces. Therefore, the idea was to try to use this exact same K8s Services to install the Documentum components.

By default, K8s will create a headless service for each of the pods, which is composed in the following way: <pod_name>.<service_name>.<namespace_name>.<cluster>. The goal here was therefore to define a K8s Service in addition for each Content Servers: <service_name_ext>.<namespace_name>.<cluster>. This is what has been used:

  • Primary Content Server:
    • headless/pod: documentum-server-0.documentum-server.dbi-ns01.svc.cluster.local
    • K8s Service: cs01.dbi-ns01.svc.cluster.local
  • Remote Content Server:
    • headless/pod: documentum-server-1.documentum-server.dbi-ns01.svc.cluster.local
    • K8s Service: cs02.dbi-ns01.svc.cluster.local
  • Repository & Service: gr_repo

On a typical VM, you would usually install Documentum using the VM hostname. The pendant on K8s would therefore be to use the headless/pod name. Alternatively, on a VM, you could think about using a DNS entry to install Documentum and you might think that this should work. I sure did and therefore, we tried to use the same kind of thing on K8s with the K8s Services directly.

Doing so for the Primary Content Server, all the Documentum silent installers completed successfully. We used “cs01.dbi-ns01.svc.cluster.local” for the following things for example:

  • Docbroker projections
  • Repository installation
  • DFC & CS Projections
  • BPM/xCP installation

Therefore, looking into the silent properties file for the Repository for example, it contained the following:

[dmadmin@documentum-server-0 ~]$ grep -E "FQDN|HOST" CS_Docbase_Global.properties
SERVER.FQDN=cs01.dbi-ns01.svc.cluster.local
SERVER.PROJECTED_DOCBROKER_HOST=cs01.dbi-ns01.svc.cluster.local
[dmadmin@documentum-server-0 ~]$

 

At the end of our silent installation (include Documentum silent installers + dbi services’ best practices (other stuff like security, JMS configuration, projections, jobs, aso…)), connection to the repository was possible, D2 & DA were both working properly so it looked like being a first good step. Unfortunately, when I was doing a review of the repository objects later, I saw some wrong objects and a bit of a mess in the repository: that’s the full purpose of this blog, to explain what went wrong when using a K8s Service instead of the headless/pod name.

After a quick review, I found the following things that were wrong/messy:

  • dm_jms_config object
    • Expected: for a Primary Content Server, you should have one JMS config object with “do_mail”, “do_method” and “SAMLAuthentication” at least (+ “do_bpm” for BPM/xCP, Indexagent ones, aso…)
      • JMS <FQDN>:9080 for gr_repo.gr_repo
    • Actual: the installer created two JMS Objects, one with a correct name (using FQDN provided in installer = K8s Service), one with a wrong name (using pod name (short-name, no domain))
      • JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo => Correct one and it contained all the needed servlets (“do_mail”, “do_method”, “do_bpm” and “SAMLAuthentication”)
      • JMS documentum-server-0:9080 for gr_repo.gr_repo => Wrong one and it contained all the do_ servlets but not the SAML one strangely (“do_mail”, “do_method” and “do_bpm” only, not “SAMLAuthentication”)
  • dm_acs_config object
    • Expected: just like for the JMS, you would expect the object to be created with the FQDN you gave it in the installer
      • <FQDN>ACS1
    • Actual: the installer create the ACS config object using the headless/pod name (full-name this time and not the short-name)
      • documentum-server-0.documentum-server.dbi-ns01.svc.cluster.localACS1
  • A lot of other references to the headless/pod name: dm_user, dm_job, dm_client_registration, dm_client_rights, aso…

So in short, sometimes the Repository installer uses the FQDN provided (K8s Service) and sometimes it doesn’t. So what’s the point in providing a FQDN during the installation since it will anyway ignore it for 90% of the objects? In addition, it also creates two JMS config objects at the same time but with different names and different servlets. Looking at the “dm_jms_config_setup.out” log file created by the installer when it executed the JMS config object creation, you can see that it mention the creation of only one object and yet at the ends, it says that there are two:

[dmadmin@documentum-server-0 ~]$ cat $DOCUMENTUM/dba/config/gr_repo/dm_jms_config_setup.out
/app/dctm/server/product/16.4/bin/dm_jms_admin.sh -docbase gr_repo.gr_repo -username dmadmin -action add,enableDFC,testDFC,migrate,dumpServerCache,listAll -jms_host_name cs01.dbi-ns01.svc.cluster.local -jms_port 9080                                               -jms_proximity 1 -webapps ServerApps -server_config_id 3d0f123450000102
2019-10-21 09:50:55 UTC:  Input arguments are: -docbase gr_repo.gr_repo -username dmadmin -action add,enableDFC,testDFC,migrate,dumpServerCache,listAll -jms_host_name cs01.dbi-ns01.svc.cluster.local -jms_port 9080 -jm                                              s_proximity 1 -webapps ServerApps -server_config_id 3d0f123450000102
2019-10-21 09:50:55 UTC:  Input parameters are: {jms_port=[9080], server_config_id=[3d0f123450000102], docbase=[gr_repo.gr_repo], webapps=[ServerApps], action=[add,enableDFC,testDFC,migrate,dumpServerCache,listAll], jms_pr                                              oximity=[1], jms_host_name=[cs01.dbi-ns01.svc.cluster.local], username=[dmadmin]}
2019-10-21 09:50:55 UTC:  ======================================================================================
2019-10-21 09:50:55 UTC:  Begin administering JMS config objects in docbase gr_repo.gr_repo ...
2019-10-21 09:51:01 UTC:  The following JMS config object has been successfully created/updated in docbase gr_repo
2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:                      JMS Config Name: JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo
                      JMS Config ID: 080f1234500010a3
                      JMS Host Name: cs01.dbi-ns01.svc.cluster.local
                    JMS Port Number: 9080
             Is Disabled In Docbase: F
               Repeating attributes:
               Content_Server_Id[0] = 3d0f123450000102
        Content_Server_Host_Name[0] = documentum-server-0
    JMS_Proximity_Relative_to_CS[0] = 2
             Servlet to URI Mapping:
                          do_method = http://cs01.dbi-ns01.svc.cluster.local:9080/DmMethods/servlet/DoMethod
                 SAMLAuthentication = http://cs01.dbi-ns01.svc.cluster.local:9080/SAMLAuthentication/servlet/ValidateSAMLResponse
                            do_mail = http://cs01.dbi-ns01.svc.cluster.local:9080/DmMail/servlet/DoMail

2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:  Successfully enabled principal_auth_priv for current DFC client  in docbase gr_repo
2019-10-21 09:51:01 UTC:  Successfully tested principal_auth_priv for current DFC client  in docbase gr_repo
2019-10-21 09:51:01 UTC:  Successfully migrated content server 3d0f123450000102 to use JMS config object(s)
2019-10-21 09:51:01 UTC:  Dump of JMS Config List in content server cache, content server is gr_repo
2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:  USER ATTRIBUTES

  jms_list_last_refreshed         : Mon Oct 21 09:51:01 2019
  incr_wait_time_on_failure       : 30
  max_wait_time_on_failure        : 3600
  current_jms_index               : -1
  jms_config_id                [0]: 080f1234500010a3
                               [1]: 080f1234500010a4
  jms_config_name              [0]: JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo
                               [1]: JMS documentum-server-0:9080 for gr_repo.gr_repo
  server_config_id             [0]: 3d0f123450000102
                               [1]: 3d0f123450000102
  server_config_name           [0]: gr_repo
                               [1]: gr_repo
  jms_to_cs_proximity          [0]: 2
                               [1]: 1
  is_disabled_in_docbase       [0]: F
                               [1]: F
  is_marked_dead_in_cache      [0]: F
                               [1]: F
  intended_purpose             [0]: DM_JMS_PURPOSE_FOR_LOAD_BALANCING
                               [1]: DM_JMS_PURPOSE_DEFAULT_EMBEDDED_JMS
  last_failure_time            [0]: N/A
                               [1]: N/A
  next_retry_time              [0]: N/A
                               [1]: N/A
  failure_count                [0]: 0
                               [1]: 0

SYSTEM ATTRIBUTES


APPLICATION ATTRIBUTES


INTERNAL ATTRIBUTES


2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:  Total 2 JMS Config objects found in docbase gr_repo
2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:                      JMS Config Name: JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo
                      JMS Config ID: 080f1234500010a3
                      JMS Host Name: cs01.dbi-ns01.svc.cluster.local
                    JMS Port Number: 9080
             Is Disabled In Docbase: F
               Repeating attributes:
               Content_Server_Id[0] = 3d0f123450000102
        Content_Server_Host_Name[0] = documentum-server-0
    JMS_Proximity_Relative_to_CS[0] = 2
             Servlet to URI Mapping:
                          do_method = http://cs01.dbi-ns01.svc.cluster.local:9080/DmMethods/servlet/DoMethod
                 SAMLAuthentication = http://cs01.dbi-ns01.svc.cluster.local:9080/SAMLAuthentication/servlet/ValidateSAMLResponse
                            do_mail = http://cs01.dbi-ns01.svc.cluster.local:9080/DmMail/servlet/DoMail

2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:                      JMS Config Name: JMS documentum-server-0:9080 for gr_repo.gr_repo
                      JMS Config ID: 080f1234500010a4
                      JMS Host Name: documentum-server-0
                    JMS Port Number: 9080
             Is Disabled In Docbase: F
               Repeating attributes:
               Content_Server_Id[0] = 3d0f123450000102
        Content_Server_Host_Name[0] = documentum-server-0
    JMS_Proximity_Relative_to_CS[0] = 1
             Servlet to URI Mapping:
                          do_method = http://documentum-server-0:9080/DmMethods/servlet/DoMethod
                            do_mail = http://documentum-server-0:9080/DmMail/servlet/DoMail

2019-10-21 09:51:01 UTC:  --------------------------------------------------------------------------------------
2019-10-21 09:51:01 UTC:  Done administering JMS config objects in docbase gr_repo.gr_repo: status=SUCCESS ...
2019-10-21 09:51:01 UTC:  ======================================================================================
Program exit status = 0 = SUCCESS
Connect to docbase gr_repo.gr_repo as user dmadmin.
Start running dm_jms_config_setup.ebs script on docbase gr_repo.gr_repo
[DM_API_E_NO_MATCH]error:  "There was no match in the docbase for the qualification: dm_method where object_name='dm_JMSAdminConsole'"


dm_method dm_JMSAdminConsole object does not exist, yet.
jarFile = /app/dctm/server/product/16.4/lib/dmjmsadmin.jar
wrapper_script = /app/dctm/server/product/16.4/bin/dm_jms_admin.sh
Create dm_method dm_JMSAdminConsole object in docbase now
new dm_JMSAdminConsole dm_method object created in docbase successfully
new object id is: 100f123450001098
Begin updating JMS_LOCATION for Java Methods ...
Assign JMS_LOCATION=ANY to a_extended_properties in method object CTSAdminMethod
Assign JMS_LOCATION=ANY to a_extended_properties in method object dm_bp_transition_java
Assign JMS_LOCATION=ANY to a_extended_properties in method object dm_bp_schedule_java
Assign JMS_LOCATION=ANY to a_extended_properties in method object dm_bp_batch_java
Assign JMS_LOCATION=ANY to a_extended_properties in method object dm_bp_validate_java
Assign JMS_LOCATION=ANY to a_extended_properties in method object dm_event_template_sender
Done updating JMS_LOCATION for Java Methods ...
Begin create default JMS config object for content server
Content Server version: 16.4.0110.0167  Linux64.Oracle
Content Server ID: 3d0f123450000102
dm_jms_config type id = 030f12345000017c
jms_count = 0
wrapper_script = /app/dctm/server/product/16.4/bin/dm_jms_admin.sh
script_params =  -docbase gr_repo.gr_repo -username dmadmin -action add,enableDFC,testDFC,migrate,dumpServerCache,listAll  -jms_host_name cs01.dbi-ns01.svc.cluster.local -jms_port 9080 -jms_proximity 1 -webapps Server                                              Apps  -server_config_id 3d0f123450000102
cmd = /app/dctm/server/product/16.4/bin/dm_jms_admin.sh  -docbase gr_repo.gr_repo -username dmadmin -action add,enableDFC,testDFC,migrate,dumpServerCache,listAll  -jms_host_name cs01.dbi-ns01.svc.cluster.local -jms_po                                              rt 9080 -jms_proximity 1 -webapps ServerApps  -server_config_id 3d0f123450000102
status = 0
Finished creating default JMS config object for content server
Finished running dm_jms_config_setup.ebs...
Disconnect from the docbase.
[dmadmin@documentum-server-0 ~]$

 

In the log file above, there is no mention of “do_bpm” because it’s the installation of the Repository and therefore, at that time, the BPM/xCP isn’t installed yet. We only install it later, switch the URLs in HTTPS and other things. So looking into the objects in the Repository, this is what we can see at the end of all installations (I purposely only executed the HTTP->HTTPS + BPM/xCP addition but not JMS Projections to keep below the default value added by the installer, which are also wrong):

[dmadmin@documentum-server-0 ~]$ iapi gr_repo
Please enter a user (dmadmin):
Please enter password for dmadmin:


        OpenText Documentum iapi - Interactive API interface
        Copyright (c) 2018. OpenText Corporation
        All rights reserved.
        Client Library Release 16.4.0110.0058


Connecting to Server using docbase gr_repo
[DM_SESSION_I_SESSION_START]info:  "Session 010f12345000117c started for user dmadmin."


Connected to OpenText Documentum Server running Release 16.4.0110.0167  Linux64.Oracle
Session id is s0
API> ?,c,select count(*) from dm_server_config;
count(*)
----------------------
                     1
(1 row affected)

API> ?,c,select r_object_id, object_name, app_server_name, app_server_uri from dm_server_config order by object_name, app_server_name;
r_object_id       object_name  app_server_name  app_server_uri
----------------  -----------  ---------------  -----------------------------------------------------------------------
3d0f123450000102  gr_repo      do_bpm           https://cs01.dbi-ns01.svc.cluster.local:9082/bpm/servlet/DoMethod
                               do_mail          https://cs01.dbi-ns01.svc.cluster.local:9082/DmMail/servlet/DoMail
                               do_method        https://cs01.dbi-ns01.svc.cluster.local:9082/DmMethods/servlet/DoMethod
(1 row affected)

API> ?,c,select count(*) from dm_jms_config;
count(*)
----------------------
                     2
(1 row affected)

API> ?,c,select r_object_id, object_name from dm_jms_config order by object_name;
r_object_id       object_name
----------------  ------------------------------------------------------------
080f1234500010a3  JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo
080f1234500010a4  JMS documentum-server-0:9080 for gr_repo.gr_repo
(2 rows affected)

API> dump,c,080f1234500010a3
...
USER ATTRIBUTES

  object_name                     : JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo
  title                           :
  subject                         :
  authors                       []: <none>
  keywords                      []: <none>
  resolution_label                :
  owner_name                      : dmadmin
  owner_permit                    : 7
  group_name                      : docu
  group_permit                    : 5
  world_permit                    : 3
  log_entry                       :
  acl_domain                      : dmadmin
  acl_name                        : dm_450f123450000101
  language_code                   :
  server_config_id             [0]: 3d0f123450000102
  config_type                     : 2
  servlet_name                 [0]: do_method
                               [1]: SAMLAuthentication
                               [2]: do_mail
                               [3]: do_bpm
  base_uri                     [0]: https://cs01.dbi-ns01.svc.cluster.local:9082/DmMethods/servlet/DoMethod
                               [1]: https://cs01.dbi-ns01.svc.cluster.local:9082/SAMLAuthentication/servlet/ValidateSAMLResponse
                               [2]: https://cs01.dbi-ns01.svc.cluster.local:9082/DmMail/servlet/DoMail
                               [3]: https://cs01.dbi-ns01.svc.cluster.local:9082/bpm/servlet/DoMethod
  supported_protocol           [0]: https
                               [1]: https
                               [2]: https
                               [3]: https
  projection_netloc_enable      []: <none>
  projection_netloc_ident       []: <none>
  projection_enable            [0]: T
  projection_proximity_value   [0]: 2
  projection_targets           [0]: documentum-server-0
  projection_ports             [0]: 0
  network_locations             []: <none>
  server_major_version            :
  server_minor_version            :
  is_disabled                     : F

SYSTEM ATTRIBUTES

  r_object_type                   : dm_jms_config
  r_creation_date                 : 10/21/2019 09:51:00
  r_modify_date                   : 10/21/2019 10:49:08
  r_modifier                      : dmadmin
  r_access_date                   : nulldate
  r_composite_id                []: <none>
  r_composite_label             []: <none>
  r_component_label             []: <none>
  r_order_no                    []: <none>
  r_link_cnt                      : 0
  r_link_high_cnt                 : 0
  r_assembled_from_id             : 0000000000000000
  r_frzn_assembly_cnt             : 0
  r_has_frzn_assembly             : F
  r_is_virtual_doc                : 0
  r_page_cnt                      : 0
  r_content_size                  : 0
  r_lock_owner                    :
  r_lock_date                     : nulldate
  r_lock_machine                  :
  r_version_label              [0]: 1.0
                               [1]: CURRENT
  r_immutable_flag                : F
  r_frozen_flag                   : F
  r_has_events                    : F
  r_creator_name                  : dmadmin
  r_is_public                     : T
  r_policy_id                     : 0000000000000000
  r_resume_state                  : 0
  r_current_state                 : 0
  r_alias_set_id                  : 0000000000000000
  r_full_content_size             : 0
  r_aspect_name                 []: <none>
  r_object_id                     : 080f1234500010a3

APPLICATION ATTRIBUTES

  a_application_type              :
  a_status                        :
  a_is_hidden                     : F
  a_retention_date                : nulldate
  a_archive                       : F
  a_compound_architecture         :
  a_link_resolved                 : F
  a_content_type                  :
  a_full_text                     : T
  a_storage_type                  :
  a_special_app                   :
  a_effective_date              []: <none>
  a_expiration_date             []: <none>
  a_publish_formats             []: <none>
  a_effective_label             []: <none>
  a_effective_flag              []: <none>
  a_category                      :
  a_is_template                   : F
  a_controlling_app               :
  a_extended_properties         []: <none>
  a_is_signed                     : F
  a_last_review_date              : nulldate

INTERNAL ATTRIBUTES

  i_is_deleted                    : F
  i_reference_cnt                 : 1
  i_has_folder                    : T
  i_folder_id                  [0]: 0c0f123450000105
  i_contents_id                   : 0000000000000000
  i_cabinet_id                    : 0c0f123450000105
  i_antecedent_id                 : 0000000000000000
  i_chronicle_id                  : 080f1234500010a3
  i_latest_flag                   : T
  i_branch_cnt                    : 0
  i_direct_dsc                    : F
  i_is_reference                  : F
  i_retain_until                  : nulldate
  i_retainer_id                 []: <none>
  i_partition                     : 0
  i_is_replica                    : F
  i_vstamp                        : 4

API> dump,c,080f1234500010a4
...
USER ATTRIBUTES

  object_name                     : JMS documentum-server-0:9080 for gr_repo.gr_repo
  title                           :
  subject                         :
  authors                       []: <none>
  keywords                      []: <none>
  resolution_label                :
  owner_name                      : dmadmin
  owner_permit                    : 7
  group_name                      : docu
  group_permit                    : 5
  world_permit                    : 3
  log_entry                       :
  acl_domain                      : dmadmin
  acl_name                        : dm_450f123450000101
  language_code                   :
  server_config_id             [0]: 3d0f123450000102
  config_type                     : 2
  servlet_name                 [0]: do_method
                               [1]: do_mail
                               [2]: do_bpm
  base_uri                     [0]: https://documentum-server-0:9082/DmMethods/servlet/DoMethod
                               [1]: https://documentum-server-0:9082/DmMail/servlet/DoMail
                               [2]: https://cs01.dbi-ns01.svc.cluster.local:9082/bpm/servlet/DoMethod
  supported_protocol           [0]: https
                               [1]: https
                               [2]: https
  projection_netloc_enable      []: <none>
  projection_netloc_ident       []: <none>
  projection_enable            [0]: T
  projection_proximity_value   [0]: 1
  projection_targets           [0]: documentum-server-0
  projection_ports             [0]: 0
  network_locations             []: <none>
  server_major_version            :
  server_minor_version            :
  is_disabled                     : F

SYSTEM ATTRIBUTES

  r_object_type                   : dm_jms_config
  r_creation_date                 : 10/21/2019 09:51:01
  r_modify_date                   : 10/21/2019 10:50:20
  r_modifier                      : dmadmin
  r_access_date                   : nulldate
  r_composite_id                []: <none>
  r_composite_label             []: <none>
  r_component_label             []: <none>
  r_order_no                    []: <none>
  r_link_cnt                      : 0
  r_link_high_cnt                 : 0
  r_assembled_from_id             : 0000000000000000
  r_frzn_assembly_cnt             : 0
  r_has_frzn_assembly             : F
  r_is_virtual_doc                : 0
  r_page_cnt                      : 0
  r_content_size                  : 0
  r_lock_owner                    :
  r_lock_date                     : nulldate
  r_lock_machine                  :
  r_version_label              [0]: 1.0
                               [1]: CURRENT
  r_immutable_flag                : F
  r_frozen_flag                   : F
  r_has_events                    : F
  r_creator_name                  : dmadmin
  r_is_public                     : T
  r_policy_id                     : 0000000000000000
  r_resume_state                  : 0
  r_current_state                 : 0
  r_alias_set_id                  : 0000000000000000
  r_full_content_size             : 0
  r_aspect_name                 []: <none>
  r_object_id                     : 080f1234500010a4

APPLICATION ATTRIBUTES

  a_application_type              :
  a_status                        :
  a_is_hidden                     : F
  a_retention_date                : nulldate
  a_archive                       : F
  a_compound_architecture         :
  a_link_resolved                 : F
  a_content_type                  :
  a_full_text                     : T
  a_storage_type                  :
  a_special_app                   :
  a_effective_date              []: <none>
  a_expiration_date             []: <none>
  a_publish_formats             []: <none>
  a_effective_label             []: <none>
  a_effective_flag              []: <none>
  a_category                      :
  a_is_template                   : F
  a_controlling_app               :
  a_extended_properties         []: <none>
  a_is_signed                     : F
  a_last_review_date              : nulldate

INTERNAL ATTRIBUTES

  i_is_deleted                    : F
  i_reference_cnt                 : 1
  i_has_folder                    : T
  i_folder_id                  [0]: 0c0f123450000105
  i_contents_id                   : 0000000000000000
  i_cabinet_id                    : 0c0f123450000105
  i_antecedent_id                 : 0000000000000000
  i_chronicle_id                  : 080f1234500010a4
  i_latest_flag                   : T
  i_branch_cnt                    : 0
  i_direct_dsc                    : F
  i_is_reference                  : F
  i_retain_until                  : nulldate
  i_retainer_id                 []: <none>
  i_partition                     : 0
  i_is_replica                    : F
  i_vstamp                        : 2

API> ?,c,select r_object_id, object_name, servlet_name, supported_protocol, base_uri from dm_jms_config order by object_name, servlet_name;
r_object_id       object_name                                                   servlet_name        supported_protocol  base_uri                                                                                                                  
----------------  ------------------------------------------------------------  ------------------  ------------------  --------------------------------------------------------------------------------------------
080f1234500010a3  JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo  SAMLAuthentication  https               https://cs01.dbi-ns01.svc.cluster.local:9082/SAMLAuthentication/servlet/ValidateSAMLResponse
                                                                                do_bpm              https               https://cs01.dbi-ns01.svc.cluster.local:9082/bpm/servlet/DoMethod
                                                                                do_mail             https               https://cs01.dbi-ns01.svc.cluster.local:9082/DmMail/servlet/DoMail
                                                                                do_method           https               https://cs01.dbi-ns01.svc.cluster.local:9082/DmMethods/servlet/DoMethod
080f1234500010a4  JMS documentum-server-0:9080 for gr_repo.gr_repo              do_bpm              https               https://cs01.dbi-ns01.svc.cluster.local:9082/bpm/servlet/DoMethod
                                                                                do_mail             https               https://documentum-server-0:9082/DmMail/servlet/DoMail
                                                                                do_method           https               https://documentum-server-0:9082/DmMethods/servlet/DoMethod
(2 rows affected)

API> ?,c,select r_object_id, object_name, projection_enable, projection_proximity_value, projection_ports, projection_targets from dm_jms_config order by object_name, projection_targets;
r_object_id       object_name                                                   projection_enable  projection_proximity_value  projection_ports  projection_targets
----------------  ------------------------------------------------------------  -----------------  --------------------------  ----------------  -------------------
080f1234500010a3  JMS cs01.dbi-ns01.svc.cluster.local:9080 for gr_repo.gr_repo                  1                           2                 0  documentum-server-0
080f1234500010a4  JMS documentum-server-0:9080 for gr_repo.gr_repo                              1                           1                 0  documentum-server-0
(2 rows affected)

API> ?,c,select count(*) from dm_acs_config;
count(*)
----------------------
                     1
(1 row affected)

API> ?,c,select r_object_id, object_name, acs_supported_protocol, acs_base_url from dm_acs_config order by object_name, acs_base_url;
r_object_id       object_name                                                           acs_supported_protocol  acs_base_url
----------------  --------------------------------------------------------------------  ----------------------  ------------------------------------------------------------
080f123450000490  documentum-server-0.documentum-server.dbi-ns01.svc.cluster.localACS1  https                   https://cs01.dbi-ns01.svc.cluster.local:9082/ACS/servlet/ACS
(1 row affected)

API> exit
Bye
[dmadmin@documentum-server-0 ~]$

 

So what to do with that? Well a simple solution is to just remove the wrong JMS config object (the second one) and redo the JMS Projections. You can stay with the wrong name of the ACS config object and other wrong references: even if it’s ugly, it will be working properly, it’s really just the second JMS config object that might cause you some trouble. Either scripting all that so it’s done properly in the end or doing it manually but then obviously when you have a project with a few hundred Content Servers, a simple manual task can become a nightmare ;). Another obvious solution is to not use the K8s Service but stick with the headless/pod name. With this second solution, you might as well try to use the MigrationUtil utility to change all references to the hostname after the installation is done. That would be something interesting to test!