{"id":13112,"date":"2019-12-07T10:00:36","date_gmt":"2019-12-07T09:00:36","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/"},"modified":"2019-12-07T10:00:36","modified_gmt":"2019-12-07T09:00:36","slug":"documentum-fixing-issues-with-the-d2-privileged-client-utility","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/","title":{"rendered":"Documentum &#8211; Fixing issues with the D2 Privileged Client utility"},"content":{"rendered":"<p>In a <a href=\"https:\/\/www.dbi-services.com\/blog\/documentum-automatic-silent-registration-approval-of-dfc-clients\/\" target=\"_blank\" rel=\"noopener noreferrer\">previous blog<\/a>, I talked about the D2 utility that can be used to automate the registration, approval and global management of the DFC Client IDs and Privileged Clients. The instructions I gave were the optimal (&#8220;normal&#8221;) ones&#8230; However, in reality, this utility or at least the shell script that is supposed to facilitate its execution is kinda bad. Therefore, if you really want to use it, then you first need to fix it.<\/p>\n<p>I saw these issues so far on the shell script (&#8216;<em>D2PrivilegedClientUtil.sh<\/em>&#8216;):<\/p>\n<ul>\n<li style=\"margin-top: -27px\">D2 16.4.0:\n<ul>\n<li>No shebang<\/li>\n<li>First line is just &#8216;:&#8217;<\/li>\n<li>log4j_configuration variable is set to &#8216;\/Documentum\/config\/log4j.properties&#8217;<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-top: -27px\">D2 16.5.0:\n<ul>\n<li>Same as D2 16.4.0 (the 3 issues)<\/li>\n<li>The file is in DOS format<\/li>\n<\/ul>\n<\/li>\n<li style=\"margin-top: -27px\">D2 16.5.1:\n<ul>\n<li>Same as D2 16.5.0 (the 4 issues)<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>If you are trying to execute the D2 16.5.1 utility with its default content, you will therefore have the following:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">[weblogic@weblogic-server-0 d2privilegedclient]$ chmod 700 D2PrivilegedClientUtil.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ .\/D2PrivilegedClientUtil.sh -d ${gr} -u ${user} -p ${pw} | grep -v \"|-\"\n.\/D2PrivilegedClientUtil.sh: line 1: $':r': command not found\n.\/D2PrivilegedClientUtil.sh: line 2: $'r': command not found\n.\/D2PrivilegedClientUtil.sh: line 4: $'r': command not found\n.\/D2PrivilegedClientUtil.sh: line 7: $'r': command not found\nRunning D2PrivilegedClientUtil\n.\/D2PrivilegedClientUtil.sh: line 9: $'r': command not found\n.\/D2PrivilegedClientUtil.sh: line 13: $'r': command not found\n.\/D2PrivilegedClientUtil.sh: line 20: $'r': command not found\n.\/D2PrivilegedClientUtil.sh: line 35: syntax error: unexpected end of file\n[weblogic@weblogic-server-0 d2privilegedclient]$<\/pre>\n<p>&nbsp;<\/p>\n<p>Therefore, the first issue you can see is the DOS format. Let&#8217;s fix this first:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [3,4,5]\">[weblogic@weblogic-server-0 d2privilegedclient]$ cp D2PrivilegedClientUtil.sh D2PrivilegedClientUtil.sh.orig\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ awk '{ sub(\"r$\", \"\"); print }' D2PrivilegedClientUtil.sh &gt; temp.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$ mv temp.sh D2PrivilegedClientUtil.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$ chmod 700 D2PrivilegedClientUtil.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$<\/pre>\n<p>&nbsp;<\/p>\n<p>Once the DOS format issue is fixed, let&#8217;s try again to execute the shell script:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [4,5,29,30,66,78,79,110]\">[weblogic@weblogic-server-0 d2privilegedclient]$ .\/D2PrivilegedClientUtil.sh -d ${gr} -u ${user} -p ${pw} | grep -v \"|-\"\nRunning D2PrivilegedClientUtil\n\nlog4j:ERROR Could not read configuration file from URL [file:\/Documentum\/config\/log4j.properties].\njava.io.FileNotFoundException: \/Documentum\/config\/log4j.properties (No such file or directory)\n        at java.io.FileInputStream.open0(Native Method)\n        at java.io.FileInputStream.open(FileInputStream.java:195)\n        at java.io.FileInputStream.&lt;init&gt;(FileInputStream.java:138)\n        at java.io.FileInputStream.&lt;init&gt;(FileInputStream.java:93)\n        at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)\n        at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)\n        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:524)\n        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:415)\n        at com.documentum.fc.common.impl.logging.LoggingConfigurator.configureLog4j(LoggingConfigurator.java:141)\n        at com.documentum.fc.common.impl.logging.LoggingConfigurator.performInitialConfiguration(LoggingConfigurator.java:33)\n        at com.documentum.fc.common.DfLogger.&lt;clinit&gt;(DfLogger.java:624)\n        at com.documentum.fc.common.impl.logging.LoggingConfigurator.onPreferencesInitialized(LoggingConfigurator.java:178)\n        at com.documentum.fc.common.DfPreferences.initialize(DfPreferences.java:71)\n        at com.documentum.fc.common.DfPreferences.getInstance(DfPreferences.java:43)\n        at com.documentum.fc.client.DfSimpleDbor.getDefaultDbor(DfSimpleDbor.java:78)\n        at com.documentum.fc.client.DfSimpleDbor.&lt;init&gt;(DfSimpleDbor.java:66)\n        at com.documentum.fc.client.DfClient$ClientImpl.&lt;init&gt;(DfClient.java:350)\n        at com.documentum.fc.client.DfClient.&lt;clinit&gt;(DfClient.java:766)\n        at com.documentum.com.DfClientX.getLocalClient(DfClientX.java:43)\n        at com.emc.xcp.rest.core.dfc.dao.impl.PrivilegeClientDaoImpl.fetchAndGrantPermissions(PrivilegeClientDaoImpl.java:40)\n        at com.opentext.d2.util.D2PrivilegedClientUtil.main(D2PrivilegedClientUtil.java:90)\nlog4j:ERROR Ignoring configuration file [file:\/Documentum\/config\/log4j.properties].\n0 [main] WARN com.documentum.fc.common.impl.logging.LoggingConfigurator  - Using default log4j configuration\n552 [main] WARN com.documentum.fc.client.impl.docbroker.ServerMapBuilder  - [DFC_DOCBROKER_REQUEST_FAILED] Request to Docbroker \"documentum-server-0:1489\" failed\nDfIOException:: THREAD: main; MSG: [DM_SESSION_E_RPC_ERROR]error:  \"Server communication failure\"; ERRORCODE: 100; NEXT: null\n        at com.documentum.fc.client.DfIOException.newCommunicationFailureException(DfIOException.java:16)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:216)\n        at com.documentum.fc.client.impl.connection.docbroker.netwise.NetwiseDocbrokerRpcClient.requestObject(NetwiseDocbrokerRpcClient.java:58)\n        at com.documentum.fc.client.impl.connection.docbroker.DocbrokerConnection.requestObject(DocbrokerConnection.java:80)\n        at com.documentum.fc.client.impl.docbroker.MapBuilder.issueRequest(MapBuilder.java:34)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getDataFromDocbroker(ServerMapBuilder.java:169)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getMap(ServerMapBuilder.java:60)\n        at com.documentum.fc.client.impl.docbroker.DocbrokerClient.getServerMap(DocbrokerClient.java:152)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoices(ServerChoiceManager.java:159)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoicesIfNecessary(ServerChoiceManager.java:148)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.getServerChoices(ServerChoiceManager.java:47)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.getServerChoices(DocbaseConnection.java:273)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.establishNewRpcClient(DocbaseConnection.java:227)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.open(DocbaseConnection.java:126)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:100)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:60)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionFactory.newDocbaseConnection(DocbaseConnectionFactory.java:26)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.createNewConnection(DocbaseConnectionManager.java:192)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.getDocbaseConnection(DocbaseConnectionManager.java:122)\n        at com.documentum.fc.client.impl.session.SessionFactory.newSession(SessionFactory.java:23)\n        at com.documentum.fc.client.impl.session.PrincipalAwareSessionFactory.newSession(PrincipalAwareSessionFactory.java:44)\n        at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:49)\n        at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:134)\n        at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:72)\n        at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:191)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.connect(ModuleManager.java:397)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.init(ModuleManager.java:352)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.getInstance(ModuleManager.java:43)\n        at com.documentum.fc.client.security.impl.DfcIdentityPublisher.&lt;init&gt;(DfcIdentityPublisher.java:44)\n        at com.documentum.fc.client.security.internal.RegistrationMgr.register(RegistrationMgr.java:34)\n        at com.documentum.fc.impl.RuntimeContext.&lt;clinit&gt;(RuntimeContext.java:195)\n        at com.documentum.fc.client.DfClient.&lt;clinit&gt;(DfClient.java:772)\n        at com.documentum.com.DfClientX.getLocalClient(DfClientX.java:43)\n        at com.emc.xcp.rest.core.dfc.dao.impl.PrivilegeClientDaoImpl.fetchAndGrantPermissions(PrivilegeClientDaoImpl.java:40)\n        at com.opentext.d2.util.D2PrivilegedClientUtil.main(D2PrivilegedClientUtil.java:90)\nCaused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)\n        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2020)\n        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1127)\n        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)\n        at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:750)\n        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)\n        at com.documentum.fc.impl.util.io.MessageChannel.writeSocket(MessageChannel.java:261)\n        at com.documentum.fc.impl.util.io.MessageChannel.write(MessageChannel.java:219)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:211)\n        ... 33 more\n564 [main] WARN com.documentum.fc.client.impl.bof.classmgmt.ModuleManager  - [DFC_BOF_COULDNT_CONNECT_TO_REGISTRY] Unable to connect to module registry, docbase name gr_repo username dm_bof_registry.\nDfDocbrokerException:: THREAD: main; MSG: [DFC_DOCBROKER_REQUEST_FAILED] Request to Docbroker \"documentum-server-0:1489\" failed; ERRORCODE: ff; NEXT: null\n        at com.documentum.fc.client.DfDocbrokerException.newRequestFailedException(DfDocbrokerException.java:12)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getMap(ServerMapBuilder.java:72)\n        at com.documentum.fc.client.impl.docbroker.DocbrokerClient.getServerMap(DocbrokerClient.java:152)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoices(ServerChoiceManager.java:159)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoicesIfNecessary(ServerChoiceManager.java:148)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.getServerChoices(ServerChoiceManager.java:47)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.getServerChoices(DocbaseConnection.java:273)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.establishNewRpcClient(DocbaseConnection.java:227)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.open(DocbaseConnection.java:126)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:100)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:60)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionFactory.newDocbaseConnection(DocbaseConnectionFactory.java:26)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.createNewConnection(DocbaseConnectionManager.java:192)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.getDocbaseConnection(DocbaseConnectionManager.java:122)\n        at com.documentum.fc.client.impl.session.SessionFactory.newSession(SessionFactory.java:23)\n        at com.documentum.fc.client.impl.session.PrincipalAwareSessionFactory.newSession(PrincipalAwareSessionFactory.java:44)\n        at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:49)\n        at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:134)\n        at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:72)\n        at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:191)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.connect(ModuleManager.java:397)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.init(ModuleManager.java:352)\n        at com.documentum.fc.client.impl.bof.classmgmt.ModuleManager.getInstance(ModuleManager.java:43)\n        at com.documentum.fc.client.security.impl.DfcIdentityPublisher.&lt;init&gt;(DfcIdentityPublisher.java:44)\n        at com.documentum.fc.client.security.internal.RegistrationMgr.register(RegistrationMgr.java:34)\n        at com.documentum.fc.impl.RuntimeContext.&lt;clinit&gt;(RuntimeContext.java:195)\n        at com.documentum.fc.client.DfClient.&lt;clinit&gt;(DfClient.java:772)\n        at com.documentum.com.DfClientX.getLocalClient(DfClientX.java:43)\n        at com.emc.xcp.rest.core.dfc.dao.impl.PrivilegeClientDaoImpl.fetchAndGrantPermissions(PrivilegeClientDaoImpl.java:40)\n        at com.opentext.d2.util.D2PrivilegedClientUtil.main(D2PrivilegedClientUtil.java:90)\nCaused by: DfIOException:: THREAD: main; MSG: [DM_SESSION_E_RPC_ERROR]error:  \"Server communication failure\"; ERRORCODE: 100; NEXT: null\n        at com.documentum.fc.client.DfIOException.newCommunicationFailureException(DfIOException.java:16)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:216)\n        at com.documentum.fc.client.impl.connection.docbroker.netwise.NetwiseDocbrokerRpcClient.requestObject(NetwiseDocbrokerRpcClient.java:58)\n        at com.documentum.fc.client.impl.connection.docbroker.DocbrokerConnection.requestObject(DocbrokerConnection.java:80)\n        at com.documentum.fc.client.impl.docbroker.MapBuilder.issueRequest(MapBuilder.java:34)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getDataFromDocbroker(ServerMapBuilder.java:169)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getMap(ServerMapBuilder.java:60)\n        ... 28 more\nCaused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)\n        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2020)\n        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1127)\n        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)\n        at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:750)\n        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)\n        at com.documentum.fc.impl.util.io.MessageChannel.writeSocket(MessageChannel.java:261)\n        at com.documentum.fc.impl.util.io.MessageChannel.write(MessageChannel.java:219)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:211)\n        ... 33 more\n577 [main] WARN com.documentum.fc.client.security.internal.RegistrationMgr  - [DFC_SECURITY_GR_PUBLICATION_FAILED] Publication of DFC instance with global registry failed\nDfException:: THREAD: main; MSG: [DFC_BOF_GLOBAL_REGISTRY_UNAVAILABLE] Unable to connect to the global registry no session; ERRORCODE: ff; NEXT: null\n        at com.documentum.fc.client.security.impl.DfcIdentityPublisher.&lt;init&gt;(DfcIdentityPublisher.java:55)\n        at com.documentum.fc.client.security.internal.RegistrationMgr.register(RegistrationMgr.java:34)\n        at com.documentum.fc.impl.RuntimeContext.&lt;clinit&gt;(RuntimeContext.java:195)\n        at com.documentum.fc.client.DfClient.&lt;clinit&gt;(DfClient.java:772)\n        at com.documentum.com.DfClientX.getLocalClient(DfClientX.java:43)\n        at com.emc.xcp.rest.core.dfc.dao.impl.PrivilegeClientDaoImpl.fetchAndGrantPermissions(PrivilegeClientDaoImpl.java:40)\n        at com.opentext.d2.util.D2PrivilegedClientUtil.main(D2PrivilegedClientUtil.java:90)\n2019-09-07 11:12:03,915 UTC [ERROR] (main) - c.e.x.r.c.d.dao.impl.PrivilegeClientDaoImpl   : [DFC_DOCBROKER_REQUEST_FAILED] Request to Docbroker \"documentum-server-0:1489\" failed\ncom.documentum.fc.client.DfDocbrokerException: [DFC_DOCBROKER_REQUEST_FAILED] Request to Docbroker \"documentum-server-0:1489\" failed\n        at com.documentum.fc.client.DfDocbrokerException.newRequestFailedException(DfDocbrokerException.java:12)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getMap(ServerMapBuilder.java:72)\n        at com.documentum.fc.client.impl.docbroker.DocbrokerClient.getServerMap(DocbrokerClient.java:152)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoices(ServerChoiceManager.java:159)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.updateServerChoicesIfNecessary(ServerChoiceManager.java:148)\n        at com.documentum.fc.client.impl.connection.docbase.ServerChoiceManager.getServerChoices(ServerChoiceManager.java:47)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.getServerChoices(DocbaseConnection.java:273)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.establishNewRpcClient(DocbaseConnection.java:227)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.open(DocbaseConnection.java:126)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:100)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.&lt;init&gt;(DocbaseConnection.java:60)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionFactory.newDocbaseConnection(DocbaseConnectionFactory.java:26)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.createNewConnection(DocbaseConnectionManager.java:192)\n        at com.documentum.fc.client.impl.connection.docbase.DocbaseConnectionManager.getDocbaseConnection(DocbaseConnectionManager.java:122)\n        at com.documentum.fc.client.impl.session.SessionFactory.newSession(SessionFactory.java:23)\n        at com.documentum.fc.client.impl.session.PrincipalAwareSessionFactory.newSession(PrincipalAwareSessionFactory.java:44)\n        at com.documentum.fc.client.impl.session.PooledSessionFactory.newSession(PooledSessionFactory.java:49)\n        at com.documentum.fc.client.impl.session.SessionManager.getSessionFromFactory(SessionManager.java:134)\n        at com.documentum.fc.client.impl.session.SessionManager.newSession(SessionManager.java:72)\n        at com.documentum.fc.client.impl.session.SessionManager.getSession(SessionManager.java:191)\n        at com.emc.xcp.rest.core.dfc.dao.impl.PrivilegeClientDaoImpl.fetchAndGrantPermissions(PrivilegeClientDaoImpl.java:47)\n        at com.opentext.d2.util.D2PrivilegedClientUtil.main(D2PrivilegedClientUtil.java:90)\nCaused by: com.documentum.fc.client.DfIOException: [DM_SESSION_E_RPC_ERROR]error:  \"Server communication failure\"\n        at com.documentum.fc.client.DfIOException.newCommunicationFailureException(DfIOException.java:16)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:216)\n        at com.documentum.fc.client.impl.connection.docbroker.netwise.NetwiseDocbrokerRpcClient.requestObject(NetwiseDocbrokerRpcClient.java:58)\n        at com.documentum.fc.client.impl.connection.docbroker.DocbrokerConnection.requestObject(DocbrokerConnection.java:80)\n        at com.documentum.fc.client.impl.docbroker.MapBuilder.issueRequest(MapBuilder.java:34)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getDataFromDocbroker(ServerMapBuilder.java:169)\n        at com.documentum.fc.client.impl.docbroker.ServerMapBuilder.getMap(ServerMapBuilder.java:60)\n        ... 20 common frames omitted\nCaused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)\n        at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)\n        at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:2020)\n        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1127)\n        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)\n        at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:750)\n        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:123)\n        at com.documentum.fc.impl.util.io.MessageChannel.writeSocket(MessageChannel.java:261)\n        at com.documentum.fc.impl.util.io.MessageChannel.write(MessageChannel.java:219)\n        at com.documentum.fc.client.impl.connection.netwise.AbstractNetwiseRpcClient.sendMessage(AbstractNetwiseRpcClient.java:211)\n        ... 25 common frames omitted\nnull\n[weblogic@weblogic-server-0 d2privilegedclient]$<\/pre>\n<p>&nbsp;<\/p>\n<p>Above, we can see two issues:<\/p>\n<ul>\n<li style=\"margin-top: -27px\">The wrong path for the log4j.properties file<\/li>\n<li>An SSL Handshake error, which cause the connection to the docbroker to fail<\/li>\n<\/ul>\n<p>The first issue is simple to fix. It&#8217;s technically not mandatory to have a log4j.properties file, the utility will still run properly but it will create two files in the local folder: &#8220;log4j.log&#8221; and &#8220;trace.log&#8221;. It will also print an exception, the one shown above. Since D2 doesn&#8217;t come with a log4j.properties file, it&#8217;s a little bit strange to use that for a newly developed utility but it&#8217;s like that. Anyway, either remove the files after the execution and ignore the errors or use a custom log4j.properties file. We are usually adding a custom log4j.properties file for the DFC logs in D2. Therefore, in my case, I will just use it.<\/p>\n<p>The second issue is actually a bug. When I first executed it, I saw this message and based on the stack trace, I highly suspected that the issue was linked to the DFC connection mode. Since we are always using secure communications by default for our Applications, I switched it to native and tried again: it worked. Therefore, I opened a SR with the OpenText Support (<strong>#4190973<\/strong>) which resulted in two defects. First, <strong>DTWO-46920<\/strong> to fix the different issues in the shell script linked to linux (the utility was obviously developed for Windows and never tested on linux). Second, <strong>DTWO-46921<\/strong> to document the bug that prevent the D2 utility to work over secure channels.<\/p>\n<p>Since none of these issues are blocking, I applied the workaround for each of these (+ the missing shebang) to execute the D2 utility a third time:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1; highlight: [1,3,5,6,7,8,9,25,26,27,28,29]\">[weblogic@weblogic-server-0 d2privilegedclient]$ sed -i 's,^:$,#!\/bin\/bash,' D2PrivilegedClientUtil.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ sed -i 's,^log4j_configuration=.*,log4j_configuration=${webinfdir}\/classes\/log4j.properties,' D2PrivilegedClientUtil.sh\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ grep secure_connect_default $APP_DATA\/D2\/dfc.properties\ndfc.session.secure_connect_default=secure\n[weblogic@weblogic-server-0 d2privilegedclient]$ sed -i 's,^dfc.session.secure_connect_default=.*,dfc.session.secure_connect_default=native,' $APP_DATA\/D2\/dfc.properties\n[weblogic@weblogic-server-0 d2privilegedclient]$ grep secure_connect_default $APP_DATA\/D2\/dfc.properties\ndfc.session.secure_connect_default=native\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ .\/D2PrivilegedClientUtil.sh -d ${gr} -u ${user} -p ${pw} | grep -v \"|-\"\nRunning D2PrivilegedClientUtil\n\n2019-09-07 11:17:27,359 UTC [INFO ] (main) - c.e.x.r.c.d.dao.impl.PrivilegeClientDaoImpl   : Checking dm_client_rights for dfc: dfc_Lp76piwfz4tpAupiCktfKFfndOAa\nD2_WS1_weblogic-server-0_fndOAa\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ .\/D2PrivilegedClientUtil.sh -d ${repo} -u ${user} -p ${pw} | grep -v \"|-\"\nRunning D2PrivilegedClientUtil\n\n2019-09-07 11:18:05,735 UTC [INFO ] (main) - c.emc.xcp.rest.core.dfc.utils.IpAndRcHelper   : filling in {0} a new record with this persistent certificate:\n{1}\n2019-09-07 11:18:06,082 UTC [INFO ] (main) - c.e.x.r.c.d.dao.impl.PrivilegeClientDaoImpl   : Checking dm_client_rights for dfc: dfc_Lp76piwfz4tpAupiCktfKFfndOAa\nD2_WS1_weblogic-server-0_fndOAa\n[weblogic@weblogic-server-0 d2privilegedclient]$\n[weblogic@weblogic-server-0 d2privilegedclient]$ grep secure_connect_default $APP_DATA\/D2\/dfc.properties\ndfc.session.secure_connect_default=native\n[weblogic@weblogic-server-0 d2privilegedclient]$ sed -i 's,^dfc.session.secure_connect_default=.*,dfc.session.secure_connect_default=secure,' $APP_DATA\/D2\/dfc.properties\n[weblogic@weblogic-server-0 d2privilegedclient]$ grep secure_connect_default $APP_DATA\/D2\/dfc.properties\ndfc.session.secure_connect_default=secure\n[weblogic@weblogic-server-0 d2privilegedclient]$<\/pre>\n<p>&nbsp;<\/p>\n<p>After applying all these fixes, the D2 utility is finally working and it does register and approve the DFC Client ID correctly. I&#8217;m curious to see when exactly they are going to fix all that and provide an utility that can work over secure communications.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In a previous blog, I talked about the D2 utility that can be used to automate the registration, approval and global management of the DFC Client IDs and Privileged Clients. The instructions I gave were the optimal (&#8220;normal&#8221;) ones&#8230; However, in reality, this utility or at least the shell script that is supposed to facilitate [&hellip;]<\/p>\n","protected":false},"author":20,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197,525],"tags":[1757,567,1758,129,1759,1417],"type_dbi":[],"class_list":["post-13112","post","type-post","status-publish","format-standard","hentry","category-application-integration-middleware","category-enterprise-content-management","tag-approval","tag-dfc","tag-dfc-client","tag-documentum","tag-registration","tag-silent"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Documentum - Fixing issues with the D2 Privileged Client utility - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Documentum - Fixing issues with the D2 Privileged Client utility\" \/>\n<meta property=\"og:description\" content=\"In a previous blog, I talked about the D2 utility that can be used to automate the registration, approval and global management of the DFC Client IDs and Privileged Clients. The instructions I gave were the optimal (&#8220;normal&#8221;) ones&#8230; However, in reality, this utility or at least the shell script that is supposed to facilitate [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-12-07T09:00:36+00:00\" \/>\n<meta name=\"author\" content=\"Morgan Patou\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MorganPatou\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Morgan Patou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/\"},\"author\":{\"name\":\"Morgan Patou\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"headline\":\"Documentum &#8211; Fixing issues with the D2 Privileged Client utility\",\"datePublished\":\"2019-12-07T09:00:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/\"},\"wordCount\":530,\"commentCount\":0,\"keywords\":[\"approval\",\"dfc\",\"DFC Client\",\"Documentum\",\"registration\",\"Silent\"],\"articleSection\":[\"Application integration &amp; Middleware\",\"Enterprise content management\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/\",\"name\":\"Documentum - Fixing issues with the D2 Privileged Client utility - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2019-12-07T09:00:36+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/documentum-fixing-issues-with-the-d2-privileged-client-utility\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentum &#8211; Fixing issues with the D2 Privileged Client utility\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/c4d05b25843a9bc2ab20415dae6bd2d8\",\"name\":\"Morgan Patou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g\",\"caption\":\"Morgan Patou\"},\"description\":\"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\\\/Banking, and the Pharmaceutical industry.\",\"sameAs\":[\"https:\\\/\\\/blog.dbi-services.com\\\/author\\\/morgan-patou\\\/\",\"https:\\\/\\\/x.com\\\/MorganPatou\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/morgan-patou\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Documentum - Fixing issues with the D2 Privileged Client utility - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/","og_locale":"en_US","og_type":"article","og_title":"Documentum - Fixing issues with the D2 Privileged Client utility","og_description":"In a previous blog, I talked about the D2 utility that can be used to automate the registration, approval and global management of the DFC Client IDs and Privileged Clients. The instructions I gave were the optimal (&#8220;normal&#8221;) ones&#8230; However, in reality, this utility or at least the shell script that is supposed to facilitate [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/","og_site_name":"dbi Blog","article_published_time":"2019-12-07T09:00:36+00:00","author":"Morgan Patou","twitter_card":"summary_large_image","twitter_creator":"@MorganPatou","twitter_misc":{"Written by":"Morgan Patou","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/"},"author":{"name":"Morgan Patou","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"headline":"Documentum &#8211; Fixing issues with the D2 Privileged Client utility","datePublished":"2019-12-07T09:00:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/"},"wordCount":530,"commentCount":0,"keywords":["approval","dfc","DFC Client","Documentum","registration","Silent"],"articleSection":["Application integration &amp; Middleware","Enterprise content management"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/","url":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/","name":"Documentum - Fixing issues with the D2 Privileged Client utility - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2019-12-07T09:00:36+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/documentum-fixing-issues-with-the-d2-privileged-client-utility\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Documentum &#8211; Fixing issues with the D2 Privileged Client utility"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/c4d05b25843a9bc2ab20415dae6bd2d8","name":"Morgan Patou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5d7f5bec8b597db68a09107a6f5309e3870d6296ef94fb10ead4b09454ca67e5?s=96&d=mm&r=g","caption":"Morgan Patou"},"description":"Morgan Patou has over 12 years of experience in Enterprise Content Management (ECM) systems, with a strong focus in recent years on platforms such as Alfresco, Documentum, and M-Files. He specializes in the architecture, setup, customization, and maintenance of ECM infrastructures in complex &amp; critical environments. Morgan is well-versed in both engineering and operations aspects, including high availability design, system integration, and lifecycle management. He also has a solid foundation in open-source and proprietary technologies - ranging from Apache, OpenLDAP or Kerberos to enterprise-grade systems like WebLogic. Morgan Patou holds an Engineering Degree in Computer Science from ENSISA (\u00c9cole Nationale Sup\u00e9rieure d'Ing\u00e9nieurs Sud Alsace) in Mulhouse, France. He is Alfresco Content Services Certified Administrator (ACSCA), Alfresco Content Services Certified Engineer (ACSCE) as well as OpenText Documentum Certified Administrator. His industry experience spans the Public Sector, IT Services, Financial Services\/Banking, and the Pharmaceutical industry.","sameAs":["https:\/\/blog.dbi-services.com\/author\/morgan-patou\/","https:\/\/x.com\/MorganPatou"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/morgan-patou\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/20"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=13112"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/13112\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=13112"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=13112"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=13112"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=13112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}