<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Julien Delattre, auteur/autrice sur dbi Blog</title>
	<atom:link href="https://www.dbi-services.com/blog/author/juliendelattre/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbi-services.com/blog/author/juliendelattre/</link>
	<description></description>
	<lastBuildDate>Wed, 29 Apr 2026 13:20:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/05/cropped-favicon_512x512px-min-32x32.png</url>
	<title>Julien Delattre, auteur/autrice sur dbi Blog</title>
	<link>https://www.dbi-services.com/blog/author/juliendelattre/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Deployment removal failed in GoldenGate Configuration Assistant (INS-85038)</title>
		<link>https://www.dbi-services.com/blog/deployment-removal-failed-in-goldengate-configuration-assistant-ins-85038/</link>
					<comments>https://www.dbi-services.com/blog/deployment-removal-failed-in-goldengate-configuration-assistant-ins-85038/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 07 May 2026 06:55:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[ins-85038]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[oggca]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[restapi]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44155</guid>

					<description><![CDATA[<p>Recently, I wrote about deleting a GoldenGate deployment with the REST API, and when investigating this issue, I remembered a limitation of the configuration assistant, which I wanted to talk about. For more information about deployment removal with the configuration assistant, you can read a blog I wrote on the topic (for 23ai, but nothing [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/deployment-removal-failed-in-goldengate-configuration-assistant-ins-85038/">Deployment removal failed in GoldenGate Configuration Assistant (INS-85038)</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Recently, I wrote about <a href="https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/" target="_blank" rel="noreferrer noopener">deleting a GoldenGate deployment with the REST API</a>, and when investigating this issue, I remembered a <strong>limitation of the configuration assistant</strong>, which I wanted to talk about. For more information about <strong>deployment removal with the configuration assistant</strong>, you can read a <a href="https://www.dbi-services.com/blog/goldengate-23ai-installation-graphic-and-silent-mode-comparison-for-automation/" target="_blank" rel="noreferrer noopener">blog</a> I wrote on the topic (for 23ai, but nothing changed in that regard in 26ai).</p>



<p>Let&#8217;s now talk about the <code>INS-85038</code> error, which is rather generic. You will definitely need more details to investigate, and this blog does not cover all possibilities. Still, I will try to give you solutions, including one that should work in most cases.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img fetchpriority="high" decoding="async" width="1010" height="262" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_ins_85038.png" alt="" class="wp-image-44158" style="width:500px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_ins_85038.png 1010w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_ins_85038-300x78.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_ins_85038-768x199.png 768w" sizes="(max-width: 1010px) 100vw, 1010px" /></figure>
</div>


<p>As a reminder, there are three steps when deleting a GoldenGate deployment with <code>oggca.sh</code> :</p>



<ul class="wp-block-list">
<li>Verify the deployment credentials</li>



<li>Stop the deployment services</li>



<li>Unregister the deployment in the Service Manager</li>
</ul>



<p>In my case, the problem I noticed is that the configuration assistant waits for the deployment to be stopped. However, it fails after some time with the following error details:</p>



<pre class="wp-block-code"><code>Log of this session available at: /u01/app/oraInventory/logs/OGGCAConfigActions2026-04-22_12-51-46PM
Setup completed with overall status as Succeeded
Setup completed with overall status as Failed
Verification failed. Expected value: (NOT) 'running', actual value: 'running'
Verification (0) failed for property 'response/status'.
Verification failed for REST call to '/services/v2/deployments/ogg_test_blog'
Results for "Stop the deployment":
..."Retrieving the 'ogg_test_blog' deployment details.": SUCCEEDED
..."Stop the 'ogg_test_blog' deployment.": SUCCEEDED
..."Verify the 'ogg_test_blog' deployment is stopped": FAILED
(1) Errors ocurred when trying to stop deployment. Make sure Service Manager is running. Check Service Manager log files for more details.</code></pre>



<p>However, when debugging this issue, I observed the following strange behavior. While the configuration assistant complains about the deployment being started, my deployment was stopped when checking its status a few seconds after.</p>



<p>I decided to <a href="https://www.dbi-services.com/blog/querying-goldengate-rest-api-log-efficiently/" target="_blank" rel="noreferrer noopener">analyze the <code>restapi.log</code> file</a> of my deployment. What I discovered was that the configuration assistant was <strong>checking the status </strong>of the deployment<strong> every ten seconds for two minutes</strong>. After this period, it fails with the abovementioned error.</p>



<h2 class="wp-block-heading" id="h-what-to-do-after-an-ins-85038-error">What to do after an INS-85038 error ?</h2>



<p>If you still want to delete this deployment, you have two options:</p>



<ul class="wp-block-list">
<li><strong>Deleting the deployment with the REST API</strong>, with the method described in <a href="https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/" target="_blank" rel="noreferrer noopener">this blog</a>, using the <a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-delete.html" target="_blank" rel="noreferrer noopener">dedicated endpoint</a>.</li>



<li><strong>Restarting the deployment and re-running the configuration assistant</strong>. But this time, <strong>if you get the same error</strong> as before, remember to wait. Once the deployment is completely stopped, click on <strong><em>Skip</em></strong> in the configuration assistant. The assistant will follow with the next step, unregistering the deployment from the Service Manager.</li>
</ul>



<p>To summarize, if you get an <code>INS-85038</code> error in the configuration assistant, try to remove the deployment with the REST API. But if the reason for this error is just a deployment that is not stopping soon enough, just use the <strong><em>Skip</em></strong> button to continue removing the deployment when it is finally stopped.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/deployment-removal-failed-in-goldengate-configuration-assistant-ins-85038/">Deployment removal failed in GoldenGate Configuration Assistant (INS-85038)</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/deployment-removal-failed-in-goldengate-configuration-assistant-ins-85038/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EM-90000 SSL Error With GoldenGate Targets in OEM</title>
		<link>https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/</link>
					<comments>https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Mon, 04 May 2026 06:12:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[discover]]></category>
		<category><![CDATA[em-90000]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[manager]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[SSLHandshakeException]]></category>
		<category><![CDATA[target]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44131</guid>

					<description><![CDATA[<p>In this blog, I will explain what needs to be done when registering GoldenGate targets behind NGINX reverse proxy in the Enterprise Manager. More specifically, we will see how to avoid the EM-90000 error related to an SSLHandshakeException. If you are upgrading to GoldenGate 26ai and migrating from Classic to Microservices Architecture, you must re-discover [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/">EM-90000 SSL Error With GoldenGate Targets in OEM</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In this blog, I will explain what needs to be done when <strong>registering GoldenGate targets behind NGINX reverse proxy in the Enterprise Manager</strong>. More specifically, we will see how to avoid the <code>EM-90000</code> error related to an <code>SSLHandshakeException</code>.</p>



<p>If you are upgrading to GoldenGate 26ai and migrating from <a href="https://www.dbi-services.com/blog/upgrade-goldengate-from-classic-to-microservices-architecture-before-its-too-late/" target="_blank" rel="noreferrer noopener">Classic to Microservices Architecture</a>, you must re-<strong>discover GoldenGate targets in the Enterprise Manager</strong>. The discovery module settings vary from one setup to another, but for a GoldenGate deployment exposed via an NGINX reverse proxy, you should <strong>set up the discovery module</strong> with the following:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="904" height="221" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_setup_discovery_module_oem.png" alt="" class="wp-image-44132" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_setup_discovery_module_oem.png 904w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_setup_discovery_module_oem-300x73.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_setup_discovery_module_oem-768x188.png 768w" sizes="(max-width: 904px) 100vw, 904px" /></figure>
</div>


<p>While this could be enough in some GoldenGate setups, it will <strong>fail if the certificate chain is not trusted by the OEM agent</strong>. In fact, if you run a discovery of your host with the settings mentioned above, no target will be discovered. This is especially tricky, since the Enterprise Manager will tell you &#8220;<em><strong>Discover Now &#8211; Completed Successfully</strong></em>&#8220;.</p>



<p>Open the <code>ogg_so_logs.log.0</code> file in the <code>agent_inst/sysman/emd</code> directory of your target agent. You will see that the discovery has failed with the following error : <code>INFO: Exception occured when tried with SSL deployment. SSLHandshakeException</code>.</p>



<pre class="wp-block-code"><code>oracle@vmogg:~ &#091;emagent] vim ogg_so_logs.log.0
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery createDiscovery
INFO: Discovery : Discovering Oracle Goldengate Instances . Discovery parameters values are , Port=443, UserName=ogg, HostName=vmogg, OGG Mode=Microservices, EMStateDir=/u01/app/oracle/agent_24ai/agent_inst
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery createDiscovery
INFO: Discovery :Target name prefix =oggtest:
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery createDiscovery
INFO: agentTrustLocation:/u01/app/oracle/agent_24ai/agent_inst/sysman/config/montrust/AgentTrust.jks
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery getJSONDataFromUrl
INFO: Discovery : Invoking URL request :https://vmogg:443/services/v2/deployments
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery getJSONDataFromUrlForSSL
INFO: Trying to connect as a ssl connection https://vmogg:443/services/v2/deployments
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery getJSONDataFromUrlForSSL
INFO: SSLHandshakeException while getting response for URL:https://vmogg:443/services/v2/deployments . javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery getJSONDataFromUrl
INFO: Exception occured when tried with SSL deployment. SSLHandshakeException: Failed to connect to ssl Microservices . Retrying via non ssl microservices. Trying with http.
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery getJSONDataFromUrl
SEVERE: For the Url = http://vmogg:443/services/v2/deployments , HTTP/response error code = 307
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateMicroServicesDiscovery generateTargetsXML
SEVERE: Exception getting response from URL:https://vmogg:443/services/v2/deployments - com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery$GGDiscoveryException: Discovery failed : HTTP error code : 307 from URL:http://vmogg:443/services/v2/deployments
Apr 19, 2026 8:01:32 AM com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery main
SEVERE: Exception during Targets discovery: EM-90000 - Target Discovery failed. Internal Error. Please contact System Administrator. - com.oracle.sysman.goldengate.discovery.GoldenGateDiscovery$GGDiscoveryException: EM-90000 - Target Discovery failed. Internal Error. Please contact System Administrator.</code></pre>



<p>The problem here is that <strong>the OEM agent does not trust the certificate chain</strong> being used in your GoldenGate installation. For the discovery (and the monitoring) to work, you need to <strong>register the certificates in the agent&#8217;s truststore</strong>.</p>



<h2 class="wp-block-heading" id="h-displaying-the-content-of-the-truststore">Displaying the content of the truststore</h2>



<p>First, let&#8217;s have a look at the content of the agent&#8217;s truststore. To do so, use the <code>keytool</code> utility shipped with the agent. Here is an example of a default <code>AgentTrust.jks</code> content. When prompted for the keystore password, use the configured truststore password (<code>welcome</code>, by default).</p>



<pre class="wp-block-code"><code>oracle@vmogg:~ &#091;emagent] /u01/app/oracle/agent_24ai/agent_24.1.0.0.0/oracle_common/jdk/bin/keytool -list -keystore /u01/app/oracle/agent_24ai/agent_inst/sysman/config/montrust/AgentTrust.jks
Enter keystore password:
Keystore type: JKS
Keystore provider: SUN

Your keystore contains 9 entries

verisignclass1pca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): 13:B8:4A:BA:EC:A3:DE:8C:71:9A:06:7D:E8:CF:18:5F:65:DC:19:E0:3E:BD:92:C2:0B:D3:8C:75:09:7B:E1:13
verisignclass3ca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): E7:68:56:34:EF:AC:F6:9A:CE:93:9A:6B:25:5B:7B:4F:AB:EF:42:93:5B:50:A2:65:AC:B5:CB:60:27:E4:4E:70
gtecybertrustglobalca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): A5:31:25:18:8D:21:10:AA:96:4B:02:C7:B7:C6:DA:32:03:17:08:94:E5:FB:71:FF:FB:66:67:D5:E6:81:0A:36
entrustsslca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): 62:F2:40:27:8C:56:4C:4D:D8:BF:7D:9D:4F:6F:36:6E:A8:94:D2:2F:5F:34:D9:89:A9:83:AC:EC:2F:FF:ED:50
entrust2048ca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): D1:C3:39:EA:27:84:EB:87:0F:93:4F:C5:63:4E:4A:A9:AD:55:05:01:64:01:F2:64:65:D3:7A:57:46:63:35:9F
verisignserverca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): 29:30:BD:09:A0:71:26:BD:C1:72:88:D4:F2:AD:84:64:5E:C9:48:60:79:07:A9:7B:5E:D0:B0:B0:58:79:EF:69
gtecybertrustca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): 52:7B:05:05:27:DF:52:9C:0F:7A:D0:0C:EF:1E:7B:A4:21:78:81:82:61:5C:32:6C:8B:6D:1A:20:61:A0:BD:7C
entrustgsslca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): 2F:2F:87:02:A6:ED:EC:B6:46:92:94:BC:A0:40:F6:3B:88:49:42:1F:CE:E1:C3:7D:1C:FB:EE:89:DC:CD:43:83
verisignclass2ca, Oct 20, 2009, trustedCertEntry,
Certificate fingerprint (SHA-256): BD:46:9F:F4:5F:AA:E7:C5:4C:CB:D6:9D:3F:3B:00:22:55:D9:B0:6B:10:B1:D0:FA:38:8B:F9:6B:91:8B:2C:E9

Warning:
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1000-bit RSA key which is considered a security risk and is disabled.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.
uses a 1024-bit RSA key which is considered a security risk. This key size will be disabled in a future update.</code></pre>



<h2 class="wp-block-heading" id="h-importing-the-certificate-in-the-truststore">Importing the certificate in the truststore</h2>



<p>Let&#8217;s add the certificate in the agent&#8217;s truststore with the following command.</p>



<pre class="wp-block-code"><code>/u01/app/oracle/agent_24ai/agent_24.1.0.0.0/oracle_common/jdk/bin/keytool -importcert -alias ogg_capath -file /path/to/ogg_certs/RootCA_cert.pem -keystore /u01/app/oracle/agent_24ai/agent_inst/sysman/config/montrust/AgentTrust.jks</code></pre>



<p>If you are not sure which file you should add, keep in mind that it should be the same file you are using in the <code>OGG_CLIENT_TLS_CAPATH</code> environment variable when loading the GoldenGate environment and connecting to your deployments with the <code>adminclient</code>.</p>



<pre class="wp-block-code"><code>oracle@vmogg:~ &#091;emagent] export OGG_CLIENT_TLS_CAPATH=/path/to/ogg_certs/RootCA_cert.pem
oracle@vmogg:~ &#091;emagent] /u01/app/oracle/agent_24ai/agent_24.1.0.0.0/oracle_common/jdk/bin/keytool -importcert -alias ogg_capath -file $OGG_CLIENT_TLS_CAPATH -keystore /u01/app/oracle/agent_24ai/agent_inst/sysman/config/montrust/AgentTrust.jks
Enter keystore password:
Owner: CN=OGG RootCA, O=OGG ROOT CA, C=AU
Issuer: CN=OGG RootCA, O=OGG ROOT CA, C=AU
Serial number: 1a11d06e7d73700aa85e35ffc0ce4a27dcfdaf7d
Valid from: Fri Mar 21 15:22:22 GMT 2026 until: Mon Mar 18 15:22:22 GMT 2036
Certificate fingerprints:
SHA1: 3C:99:5B:3A:D9:A4:64:6D:23:F0:0A:48:16:FA:AF:85:BD:26:E3:C7
SHA256: 8D:6F:1D:67:ED:D9:7B:C0:C8:0E:D1:0E:50:2F:15:25:45:5D:F2:1D:A2:AB:22:C7:2D:AE:05:19:F1:DE:28:31
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 4096-bit RSA key
Version: 3

Extensions:

#1: ObjectId: 2.5.29.35 Criticality=false

AuthorityKeyIdentifier &#091;
KeyIdentifier &#091;
0000: E3 BC BD 71 43 FD 85 B0 48 E1 44 A1 81 04 FA A9 …qC…H.D…..
0010: 1D 1C 45 16 ..E.
]
]

#2: ObjectId: 2.5.29.19 Criticality=true

BasicConstraints:&#091;
CA:true
PathLen:2147483647
]

#3: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier &#091;
KeyIdentifier &#091;
0000: E3 BC BD 71 43 FD 85 B0 48 E1 44 A1 81 04 FA A9 …qC…H.D…..
0010: 1D 1C 45 16 ..E.
]
]

Trust this certificate? &#091;no]: yes
Certificate was added to keystore</code></pre>



<p>If you check the content of the keystore again, you will see the new entry under the alias you just added. We will use the <code>-alias ogg_capath</code> option to only display the new alias.</p>



<pre class="wp-block-code"><code>oracle@vmogg:~ &#091;emagent] /u01/app/oracle/agent_24ai/agent_24.1.0.0.0/oracle_common/jdk/bin/keytool -list -keystore /u01/app/oracle/agent_24ai/agent_inst/sysman/config/montrust/AgentTrust.jks -alias ogg_capath
Enter keystore password:
ogg_capath, Apr 19, 2026, trustedCertEntry,
Certificate fingerprint (SHA-256): 8D:6F:1D:67:ED:D9:7B:C0:C8:0E:D1:0E:50:2F:15:25:45:5D:F2:1D:A2:AB:22:C7:2D:AE:05:19:F1:DE:28:31</code></pre>



<p>Without modifying anything in the Enterprise Manager, you can <strong>re-run the discovery</strong>. This time, the GoldenGate targets will be discovered ! To promote the new targets, just click on the <strong>number of targets discovered</strong>. You can also go in the <em><strong>Setup &gt; Add Target &gt; Auto Discovery Results</strong></em> section to view all discovered targets. Once this is done, the <strong>new targets will be monitored</strong>.</p>



<p>To summarize, in this NGINX context, OEM GoldenGate discovery fails with <code>EM-90000</code> due to missing CA certificates in the agent truststore. Importing the proper CA chain into <code>AgentTrust.jks</code> resolves the SSL handshake failure.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/">EM-90000 SSL Error With GoldenGate Targets in OEM</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Delete a GoldenGate deployment when the password is lost</title>
		<link>https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/</link>
					<comments>https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 06:38:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[delete]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[lost]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[remove]]></category>
		<category><![CDATA[restapi]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44091</guid>

					<description><![CDATA[<p>Recently, I was asked how to recreate a GoldenGate deployment if the password for the Security user (the first user created with the deployment) was lost. This is an interesting question that I figured was worth writing about. As a reminder, you have two main ways of creating and deleting deployments in GoldenGate: I already [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/">Delete a GoldenGate deployment when the password is lost</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Recently, I was asked how to recreate a GoldenGate deployment if the password for the <code>Security</code> user (the first user created with the deployment) was lost. This is an interesting question that I figured was worth writing about.</p>



<p>As a reminder, you have two main ways of creating and deleting deployments in GoldenGate:</p>



<ul class="wp-block-list">
<li>Using the configuration assistant <code>oggca.sh</code></li>



<li>Using the REST API and its deployment endpoints</li>
</ul>



<p>I already covered the creation and removal of deployments with the configuration assistant in a <a href="https://www.dbi-services.com/blog/goldengate-23ai-installation-graphic-and-silent-mode-comparison-for-automation/" target="_blank" rel="noreferrer noopener">previous blog</a>. I also wrote about <a href="https://www.dbi-services.com/blog/create-a-new-goldengate-deployment-with-the-rest-api/" target="_blank" rel="noreferrer noopener">deployment creation with the REST API</a>, but not yet about deletion.</p>



<h2 class="wp-block-heading" id="h-deleting-the-deployment-from-oggca-sh-won-t-work">Deleting the deployment from <code>oggca.sh</code> won&#8217;t work</h2>



<p>From the GoldenGate Configuration Assistant (<code>oggca.sh</code> script), deleting a deployment is straightforward, but as shown below, you will be asked to input <strong>not only the Service Manager credentials, but also the deployment credentials</strong> !</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" width="1024" height="739" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1-1024x739.png" alt="" class="wp-image-44093" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1-1024x739.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1-300x217.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1-768x555.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1-1536x1109.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_deployment_removal_oggca-1.png 1590w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>This means that <code>oggca.sh</code> cannot be used for such a task.</p>



<h2 class="wp-block-heading" id="h-deleting-a-deployment-with-the-rest-api">Deleting a deployment with the REST API</h2>



<p>To overcome this issue, let&#8217;s list the steps taken by <code>oggca.sh</code> when deleting GoldenGate deployment:</p>



<ul class="wp-block-list">
<li>Verify the deployment credentials</li>



<li>Stop the deployment services</li>



<li>Unregister the deployment in the Service Manager</li>
</ul>



<p>While asking for the deployment&#8217;s password might be relevant to avoid deleting the wrong deployment, you do not strictly need it. In fact, you can <strong>stop the deployment services from the Service Manager itself</strong>. To do so, use the <code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-patch.html" target="_blank" rel="noreferrer noopener">update_deployment</a></code> endpoint (<code>PATCH /services/{version}/deployments/{deployment}</code>) to change the <code>status</code> of the deployment to <code>stopped</code>. Using the Python client I presented in <a href="https://www.dbi-services.com/blog/production-ready-goldengate-rest-client-in-python/" target="_blank" rel="noreferrer noopener">another blog</a>, I will open a connection to the Service Manager and stop the deployment <code>ogg_test_01</code>.</p>



<pre class="wp-block-code"><code>&gt;&gt;&gt; from oggrestapi import OGGRestAPI
&gt;&gt;&gt; ogg_client = OGGRestAPI(url="http://vmogg:7809", username="ogg", password="***")
&gt;&gt;&gt; ogg_client.update_deployment('ogg_test_01', data={"status":"stopped"})
{'$schema': 'api:standardResponse', 'links': &#091;{'rel': 'canonical', 'href': 'https://vmogg/services/ServiceManager/v2/deployments/ogg_test_01', 'mediaType': 'application/json'}, {'rel': 'self', 'href': 'https://vmogg/services/ServiceManager/v2/deployments/ogg_test_01', 'mediaType': 'application/json'}], 'messages': &#091;]}</code></pre>



<p>Once this is done, you can unregister the deployment from the Service Manager with the <code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-delete.html" target="_blank" rel="noreferrer noopener">remove_deployment</a></code> endpoint (<code>DELETE /services/{version}/deployments/{deployment}</code>)</p>



<p>And for this, we never needed the deployment password !</p>



<p>To clean your installation, make sure to remove all files related to the old deployment. More specifically:</p>



<ul class="wp-block-list">
<li>The <code>deploymentConfiguration.dat</code> of your Service Manager was already edited, you do not need to clean it manually.</li>



<li>You can delete or archive the deployment main directory.</li>



<li>The <code>$OGG_SM_HOME/var/run</code> directory should be cleaned of the <code>.dat</code> files named after the deployment : <code>rm $OGG_SM_HOME/var/run/ogg_test_01*</code></li>
</ul>



<p>That&#8217;s it. You have successfully deleted your deployment, and you can re-create it anytime you want. And this time, remember to store the password !</p>
<p>L’article <a href="https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/">Delete a GoldenGate deployment when the password is lost</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/delete-a-goldengate-deployment-when-the-password-is-lost/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Bulk Update of GoldenGate Extract Profiles</title>
		<link>https://www.dbi-services.com/blog/bulk-update-of-goldengate-extracts-profiles/</link>
					<comments>https://www.dbi-services.com/blog/bulk-update-of-goldengate-extracts-profiles/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 06:30:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[replicat]]></category>
		<category><![CDATA[restapi]]></category>
		<category><![CDATA[update]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43864</guid>

					<description><![CDATA[<p>After writing blogs about Default profile updates and a bug affecting profiles in GoldenGate 26ai, I realized it would be a good idea to present a quick way to update all processes at once with the REST API. Because even if you set a new profile as default with the {"isDefault": true} flag, previously created [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/bulk-update-of-goldengate-extracts-profiles/">Bulk Update of GoldenGate Extract Profiles</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>After writing blogs about <a href="https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/" target="_blank" rel="noreferrer noopener">Default profile updates</a> and a <a href="https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/" target="_blank" rel="noreferrer noopener">bug affecting profiles in GoldenGate 26ai</a>, I realized it would be a good idea to present a <strong>quick way to update all processes at once</strong> with the REST API. Because even if you set a new profile as default with the <code>{"isDefault": true}</code> flag, previously created extracts and replicats will not be updated !</p>



<p>To explain this further, let&#8217;s look at an extract setting using the <code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-extracts-extract-get.html" target="_blank" rel="noreferrer noopener">retrieve_extract</a></code> endpoint. I&#8217;m using the <a href="https://www.dbi-services.com/blog/production-ready-goldengate-rest-client-in-python/" target="_blank" rel="noreferrer noopener">Python client</a> I presented in another blog. Everything I&#8217;m talking about here is not specific to extracts, and can be extended to replicats. However, <strong>it doesn&#8217;t apply to distribution paths</strong>.</p>



<h4 class="wp-block-heading" id="h-extract-with-no-profile-assigned">Extract with no profile assigned</h4>



<p>If an extract was created in the most basic configuration, it inherits the <code>Default</code> profile implicitly, but this information is <strong>not registered in the extract definition</strong>. Below is the configuration of such an extract. To save you time, just remember that there is no mention of any profile setting.</p>



<pre class="wp-block-code"><code>&gt;&gt;&gt; ogg_client.retrieve_extract('EXTSRC')
{'$schema': 'ogg:extract', 'credentials': {'alias': 'cdb01', 'domain': 'OracleGoldenGate'}, 'begin': 'now', 'encryptionProfile': 'LocalWallet', 'targets': &#091;{'name': 'aa', 'path': 'PDB1', 'sizeMB': 2000, 'sequenceLength': 9, 'sequenceLengthFlip': False, 'sequence': 1, 'offset': 1399, 'remote': False}], 'config': &#091;'--- Auto generated Parameter File, do not edit ---', 'EXTRACT EXTSRC', 'USERIDALIAS cdb01 DOMAIN OracleGoldenGate', 'EXTTRAIL PDB1/aa', '--- End of auto generated Parameter File ---', 'SOURCECATALOG PDB1', 'TABLE APP_PDB1.*;'], 'source': 'tranlogs', 'type': 'Integrated', 'registration': {'share': False, 'containers': &#091;'PDB1'], 'csn': 2809889}, 'status': 'running'}</code></pre>



<h4 class="wp-block-heading" id="h-extract-with-a-profile-set">Extract with a profile set</h4>



<p>If a profile is assigned to the extract, the <code>managedProcessSettings</code> key is added to the extract configuration. This is true whether you assign a custom profile or re-assign the <code>Default</code> profile after having changed the extract configuration. Below, we can see the difference with the following key/value pair : <code>'managedProcessSettings': 'ogg:managedProcessSettings:dbiProfile'</code></p>



<pre class="wp-block-code"><code>{'$schema': 'ogg:extract', 'credentials': {'alias': 'cdb01', 'domain': 'OracleGoldenGate'}, 'begin': 'now', 'encryptionProfile': 'LocalWallet', 'managedProcessSettings': 'ogg:managedProcessSettings:dbiProfile', 'targets': &#091;{'name': 'aa', 'path': 'PDB1', 'sizeMB': 2000, 'sequenceLength': 9, 'sequenceLengthFlip': False, 'sequence': 1, 'offset': 1399, 'remote': False}], 'config': &#091;'--- Auto generated Parameter File, do not edit ---', 'EXTRACT EXTSRC', 'USERIDALIAS cdb01 DOMAIN OracleGoldenGate', 'EXTTRAIL PDB1/aa', '--- End of auto generated Parameter File ---', 'SOURCECATALOG PDB1', 'TABLE APP_PDB1.*;'], 'source': 'tranlogs', 'type': 'Integrated', 'registration': {'share': False, 'containers': &#091;'PDB1'], 'csn': 2809889}, 'status': 'running'}</code></pre>



<h4 class="wp-block-heading" id="h-extract-with-a-custom-configuration">Extract with a custom configuration</h4>



<p>If an extract has a custom unique configuration that is not a profile, the full configuration is added as a JSON to the extract definition under the same <code>managedProcessSettings</code> key. I give below an example:</p>



<pre class="wp-block-code"><code>{'$schema': 'ogg:extract', 'credentials': {'alias': 'cdb01', 'domain': 'OracleGoldenGate'}, 'begin': 'now', 'encryptionProfile': 'LocalWallet', 'managedProcessSettings': {'autoStart': {'enabled': True, 'delay': 60}, 'autoRestart': {'enabled': False, 'onSuccess': False, 'delay': 0, 'retries': 9, 'window': 0, 'disableOnFailure': True, 'failures': 0}}, 'targets': &#091;{'name': 'aa', 'path': 'PDB1', 'sizeMB': 2000, 'sequenceLength': 9, 'sequenceLengthFlip': False, 'sequence': 1, 'offset': 1399, 'remote': False}], 'config': &#091;'--- Auto generated Parameter File, do not edit ---', 'EXTRACT EXTSRC', 'USERIDALIAS cdb01 DOMAIN OracleGoldenGate', 'EXTTRAIL PDB1/aa', '--- End of auto generated Parameter File ---', 'SOURCECATALOG PDB1', 'TABLE APP_PDB1.*;'], 'source': 'tranlogs', 'type': 'Integrated', 'registration': {'share': False, 'containers': &#091;'PDB1'], 'csn': 2809889}, 'status': 'running'}</code></pre>



<h2 class="wp-block-heading" id="h-how-to-modify-a-single-extract-s-profile-with-the-rest-api">How to modify a single extract&#8217;s profile with the REST API ?</h2>



<p><strong>Modifying the profile</strong> of an extract or replicat with the REST API means <strong>updating the <code>managedProcessSettings</code> key</strong> of the process. For an extract, you would use the <code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-extracts-extract-patch.html" target="_blank" rel="noreferrer noopener">update_extract</a></code> endpoint, with a <code>data</code> payload that only contains the <code>managedProcessSettings</code> key, and its value. It can be the <strong>profile name or the full profile definition</strong>, as shown above. Here is an example of a single update of an extract:</p>



<pre class="wp-block-code"><code>&gt;&gt;&gt; ogg_client.update_extract(
extract='EXTSRC',
    data={
        'managedProcessSettings': 'ogg:managedProcessSettings:dbiProfile'
    }
)</code></pre>



<p>And do not worry about entering a <strong>wrong name</strong> for the profile. If you do this, the <strong>API returns the following error</strong>:</p>



<pre class="wp-block-code"><code>&gt;&gt;&gt; ogg_client.update_extract(
    extract='EXTSRC',
    data={
        'managedProcessSettings': 'ogg:managedProcessSettings:NonExistingProfile'
    }
)
Exception: ERROR - https://vmogg/services/ogg_test_01/adminsrvr/v2/extracts/EXTSRC: The managed process settings profile 'ogg:managedProcessSettings:NonExistingProfile' does not exist. ; INFO - https://vmogg/services/ogg_test_01/adminsrvr/v2/extracts/EXTSRC: The item type  with name 'ogg:managedProcessSettings:NonExistingProfile' does not exist.</code></pre>



<h2 class="wp-block-heading" id="h-how-to-modify-all-extracts-and-replicats">How to modify all extracts and replicats ?</h2>



<p>Based on the above, modifying all extracts and replicats is easy. You should just <strong>iterate over your extracts and replicats</strong> and <strong>apply the profile</strong> that you want. Below is an example script where you can modify the <code>profile_name</code> variable and the connection details to the Administration Service of your deployment. You could even decide to have different profiles assigned to extracts and replicats, if needed.</p>



<pre class="wp-block-code"><code>from oggrestapi import OGGRestAPI

profile_name = 'dbiProfile'

ogg_client = OGGRestAPI(
    url='https://vmogg',
    user='ogg',
    password='ogg',
    reverse_proxy=True,
    deployment='ogg_test_01'
)

for extract in ogg_client.list_extracts():
    extract_name = extract&#091;'name']
    print(f"Updating extract {extract_name}")
    ogg_client.update_extract(
        extract=extract_name,
        data={
            'managedProcessSettings': f'ogg:managedProcessSettings:{profile_name}'
        }
    )

for replicat in ogg_client.list_replicats():
    replicat_name = replicat&#091;'name']
    print(f"Updating replicat {replicat_name}")
    ogg_client.update_replicat(
        replicat=replicat_name,
        data={
            'managedProcessSettings': f'ogg:managedProcessSettings:{profile_name}'
        }
    )</code></pre>



<p>After running this against the Administration Service, all your extracts and replicats will now follow the same new profile.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/bulk-update-of-goldengate-extracts-profiles/">Bulk Update of GoldenGate Extract Profiles</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/bulk-update-of-goldengate-extracts-profiles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GoldenGate 26ai Logs Explained</title>
		<link>https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/</link>
					<comments>https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 06:36:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[adminsrvr.log]]></category>
		<category><![CDATA[debug]]></category>
		<category><![CDATA[diagnosis]]></category>
		<category><![CDATA[distsrvr.log]]></category>
		<category><![CDATA[ER-events.log]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[ggserr.log]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[pmsrvr.log]]></category>
		<category><![CDATA[recvsrvr.log]]></category>
		<category><![CDATA[restapi]]></category>
		<category><![CDATA[restapi.log]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43872</guid>

					<description><![CDATA[<p>GoldenGate logs are a powerful source of information when troubleshooting or analyzing your deployments. However, there is at least one log file per service in the Microservices Architecture. This means that for a GoldenGate setup with multiple deployments, you can quickly have tens of log files to search for information. In that context, knowing where [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/">GoldenGate 26ai Logs Explained</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>GoldenGate logs are a <strong>powerful source of information</strong> when troubleshooting or <strong>analyzing your deployments</strong>. However, there is at least one log file per service in the Microservices Architecture. This means that for a GoldenGate setup with multiple deployments, you can quickly have tens of log files to search for information. In that context, <strong>knowing where to look is important</strong>, especially if you are <a href="https://www.dbi-services.com/blog/upgrade-goldengate-from-classic-to-microservices-architecture-before-its-too-late/" target="_blank" rel="noreferrer noopener">upgrading from a Classic Architecture</a> where you only had to check the <code>ggserr.log</code> file.</p>



<h2 class="wp-block-heading" id="h-rest-api-log-files">REST API Log Files</h2>



<p>The <code>restapi.log</code> files are one of the most important logs because of the amount of information they provide. They allow you to completely understand what is happening behind the scenes. It takes time to learn how to analyze them, but I wrote a dedicated article on <a href="https://www.dbi-services.com/blog/querying-goldengate-rest-api-log-efficiently/" target="_blank" rel="noreferrer noopener">REST API log analysis</a> to help you through this. There is one <code>restapi.log</code> file per deployment, because the REST API calls are always made to a specific deployment. This is also true when using a reverse proxy.</p>



<p>These <code>restapi.log</code> files are also a source of information for other GoldenGate log files. For instance, REST API logs on the AI Service will be cleaned and filtered before ending up in the log dedicated to the AI Service. This is another reason why you should understand the content of these <code>restapi.log</code> files.</p>



<p>Here is a log example from a <code>restapi.log</code> file. Again, for more details, read the blog linked above.</p>



<pre class="wp-block-code"><code>2026-04-09 19:46:36.789+0000 ERROR|RestAPI.adminsrvr | Request #1581: {
    "context": {
        "httpContextKey": 140353514441552,
        "verbId": 7,
        "verb": "PATCH",
        "originalVerb": "PATCH",
        "uri": "/services/v2/extracts/EXTSRC",
        "protocol": "http",
        "headers": {
            "X-OGG-Context": "services/ogg_test_01/adminsrvr",
            "X-OGG-Deployment": "ogg_test_01",
            "X-OGG-Service": "adminsrvr",
            "X-OGG-Version": "v2",
            "X-OGG-Resource": "extracts/EXTSRC",
            "X-Real-IP": "**",
            "X-Forwarded-For": "**",
            "X-Forwarded-Host": "vmogg",
            "X-Forwarded-Proto": "https",
            "X-Forwarded-Server": "oggvm1",
            "X-SSL-Client-Verify": "NONE",
            "Connection": "keep-alive",
            "Host": "vmogg",
            "Content-Length": "75",
            "User-Agent": "python-requests/2.32.3",
            "Accept-Encoding": "gzip, deflate",
            "Accept": "application/json",
            "Content-Type": "application/json",
            "Cookie": "** Masked **",
            "Authorization": "** Masked **",
            "X-OGG-Requestor-Id": "",
            "X-OGG-Feature-List": ""
        },
        "host": "vmogg",
        "securityEnabled": false,
        "authorization": {
            "authUserName": "ogg",
            "authPassword": "** Masked **",
            "authMode": "Basic",
            "authUserRole": "Security"
        },
        "requestId": 4,
        "uriTemplate": "/services/{version}/extracts/{extract}"
    },
    "content": {
        "managedProcessSettings": "ogg:managedProcessSettings:NonExistingProfile"
    },
    "isScaRequest": true,
    "parameters": {
        "uri": {
            "extract": "EXTSRC",
            "version": "v2"
        }
    }
}
Response: {
    "context": {
        "httpContextKey": 140353514441552,
        "requestId": 4,
        "code": "404 Not Found",
        "headers": {
            "Content-Type": "application/json",
            "Set-Cookie": "** Masked **"
        },
        "Content-Type": "application/json",
        "contentType": "application/json"
    },
    "isScaResponse": true,
    "content": {
        "$schema": "api:standardResponse",
        "links": &#091;
            {
                "rel": "canonical",
                "href": "https://vmogg/services/ogg_test_01/adminsrvr/v2/extracts/EXTSRC",
                "mediaType": "application/json"
            },
            {
                "rel": "self",
                "href": "https://vmogg/services/ogg_test_01/adminsrvr/v2/extracts/EXTSRC",
                "mediaType": "application/json"
            }
        ],
        "messages": &#091;
            {
                "$schema": "ogg:message",
                "title": "The managed process settings profile 'ogg:managedProcessSettings:NonExistingProfile' does not exist.",
                "code": "OGG-08122",
                "severity": "ERROR",
                "issued": "2026-04-09T19:46:36Z",
                "type": "https://docs.oracle.com/en/middleware/goldengate/core/23.26/error-messages/"
            },
            {
                "$schema": "ogg:message",
                "title": "The item type  with name 'ogg:managedProcessSettings:NonExistingProfile' does not exist.",
                "code": "OGG-12029",
                "severity": "INFO",
                "issued": "2026-04-09T19:46:36Z",
                "type": "https://docs.oracle.com/en/middleware/goldengate/core/23.26/error-messages/"
            }
        ]
    }
}</code></pre>



<h2 class="wp-block-heading" id="h-admin-client-log-file">Admin Client Log File</h2>



<p>Depending on your configuration, the <code>adminclient</code> log file might not always be in the same location. More specifically, you can have multiple <code>adminclient.log</code> files for a single GoldenGate installation. The reason behind this is that the logs go to the location of your <code>OGG_VAR_HOME</code> environment variable. The <code>adminclient.log</code> can be located in :</p>



<ul class="wp-block-list">
<li>In your Service Manager <code>var/log</code> directory, if your GoldenGate user has the Service Manager <code>OGG_VAR_HOME</code> set in the environment.</li>



<li>In your deployment <code>var/log</code> directory, if you change the <code>OGG_VAR_HOME</code> environment variable when switching between deployments at the OS level. This is not recommended, as it can lead to multiple <code>adminclient.log</code> files and mixed-up logs between deployments.</li>



<li>In your GoldenGate binaries, if you misconfigured your environment and are calling the <code>adminclient</code> with an empty <code>OGG_VAR_HOME</code> variable. This is not ideal, as you could lose the log file after patching or upgrading.</li>
</ul>



<p>There is not much to see in this file with the default logging configuration, but it can be used to troubleshoot connection issues with the <code>adminclient</code>.</p>



<h2 class="wp-block-heading" id="h-service-manager-log-files">Service Manager Log Files</h2>



<p>Let&#8217;s look at the <code>var/log</code> folder of the Service Manager deployment.</p>



<pre class="wp-block-code"><code>oggsm/var/log:
ServiceManager.log
restapi.log
AIService.log</code></pre>



<p>In GoldenGate 26ai, there are three different logs for the Service Manager:</p>



<ul class="wp-block-list">
<li><code>ServiceManager.log</code> : In a healthy installation, this log file should only contain logs generated when services start or stop. But if your Administration Server doesn&#8217;t start, this log is a good starting point for troubleshooting.</li>
</ul>



<pre class="wp-block-code"><code>2026-04-09T19:20:28.124+0000 INFO | Task 'ogg_test_01:adminsrvr' started with process id 2505 (ogg_test_01:adminsrvr)
2026-04-09T19:20:28.159+0000 INFO | Task 'ServiceManager:AIService' started with process id 2515 (ServiceManager:AIService)
2026-04-09T19:20:28.182+0000 INFO | Task 'ogg_test_01:distsrvr' started with process id 2522 (ogg_test_01:distsrvr)
2026-04-09T19:20:28.215+0000 INFO | Task 'ogg_test_01:recvsrvr' started with process id 2542 (ogg_test_01:recvsrvr)
2026-04-09T19:20:28.234+0000 INFO | Task 'ogg_test_01:pmsrvr' started with process id 2553 (ogg_test_01:pmsrvr)
2026-04-09T19:20:29.243+0000 INFO | Installation topology updated (ServiceManager.Topology)</code></pre>



<ul class="wp-block-list">
<li><code>restapi.log</code> : See the chapter above about REST API Log Files.</li>
</ul>



<ul class="wp-block-list">
<li><code>AIService.log</code> : This is where logs from the AI Service are gathered. It mostly consists of a cleaned collection of the REST API logs from calls made against the AI Service. For instance, here is a log you can get when adding an AI Provider to the Service Manager.</li>
</ul>



<pre class="wp-block-code"><code>2026-04-09 19:32:21.056 DATA |AIService&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |AIService.RestApi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 247 RequestHandlers.cpp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | 00000000-0000-0000-D5F8-000000000006&gt; {"$schema":"api:standardResponse","links":&#091;],"response":{"providers":&#091;{"id":"1","name":"GeminiAiStudio","type":"gemini","baseUrl":"https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent","authentication":{"type":"api_key","configured":true},"links":&#091;{"rel":"parent","href":"/api/v1/providers","mediaType":"application/json"},{"rel":"canonical","href":"/api/v1/providers/1","mediaType":"application/json"}]}],"metadata":{"fromCache":false,"providerCount":1,"lastUpdatedEpochMicroseconds":1775827941054749}},"messages":&#091;]} (Thread 2)</code></pre>



<h2 class="wp-block-heading" id="h-deployment-log-files">Deployment Log Files</h2>



<p>GoldenGate deployments have more log file types than the Service Manager. In the <code>var/log</code> folder of your deployments, you should have the following files:</p>



<pre class="wp-block-code"><code>ogg_test_01/var/log:
adminsrvr.log
distsrvr.log
ER-events.log
extract.log
ggserr.log
pmsrvr.log
recvsrvr.log
replicat.log
restapi.log</code></pre>



<ul class="wp-block-list">
<li><code>adminsrvr.log</code>, <code>distsrvr.log</code>, <code>recvsrvr.log</code> and <code>pmsrvr.log</code> : These files contain all the information, warning and error messages from actions or events in the main GoldenGate services (Administration, Distribution, Receiver and Performance Metrics Services). They are <strong>not as extensive</strong> as what you can find in the <code>restapi.log</code> file, but they provide a really <strong>good overview of what is happening</strong> inside your deployment.</li>



<li><code>ER-events.log</code> : This is a log file that can be used for monitoring your GoldenGate deployments. <strong>All warning and error messages on your extracts and replicats</strong> are available here. It is sometimes verbose, but still very <strong>useful for monitoring</strong>.</li>
</ul>



<pre class="wp-block-code"><code>2026-04-10T07:11:17.844+0000  ERROR   OGG-01668  Oracle GoldenGate Capture for Oracle, EXTA.prm:  PROCESS ABENDING.
2026-04-10T07:12:24.447+0000  WARNING OGG-06658  Oracle GoldenGate Capture for Oracle, EXTB.prm:  Unable to restore a failed connection to the database after 3 retries.</code></pre>



<ul class="wp-block-list">
<li><code>extract.log</code> and <code>replicat.log</code> : In these log files, you can find status information, statistics, and transactions processed by your extracts and replicats. This does not provide fundamentally new information compared to other sources (<code>adminclient</code>, for instance), but it is a <strong>useful view when observing all processes at the same time</strong>.</li>
</ul>



<pre class="wp-block-code"><code>2026-04-08T09:13:10.249+0000 INFO | INFO    OGG-01026  Oracle GoldenGate Capture for Oracle, EXTA.prm:  Rolling over remote file PDB1/aa000000321. (main)
2026-04-08T09:14:10.540+0000 INFO | INFO    OGG-01026  Oracle GoldenGate Capture for Oracle, EXTB.prm:  Rolling over remote file PDB1/ab000000645. (main)
2026-04-08T09:14:32.963+0000 INFO | INFO    OGG-01026  Oracle GoldenGate Capture for Oracle, EXTC.prm:  Rolling over remote file PDB1/ac000000128. (main)</code></pre>



<ul class="wp-block-list">
<li><code>ggserr.log</code> : This log serves the same purpose as it did in the old Classic Architecture, containing all information about your deployment. Contrary to what its name suggests, it <strong>does not only contain the errors</strong> happening in your deployment.</li>
</ul>



<ul class="wp-block-list">
<li><code>restapi.log</code> : See the chapter above about REST API Log Files.</li>
</ul>



<h2 class="wp-block-heading" id="h-goldengate-logs-in-the-web-ui">GoldenGate Logs in the Web UI</h2>



<p>In the GoldenGate web UI, you can access, filter, or query some of the logs listed above. From the Service Manager, the <em><strong>Diagnosis Log</strong></em> tab displays the <code>ServiceManager.log</code> file with filtering options.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="594" height="794" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab.png" alt="" class="wp-image-43873" style="width:400px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab.png 594w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab-224x300.png 224w" sizes="auto, (max-width: 594px) 100vw, 594px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="317" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab_content-1024x317.png" alt="" class="wp-image-43874" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab_content-1024x317.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab_content-300x93.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab_content-768x238.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_diagnosis_log_tab_content.png 1286w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>You can also quickly <strong>enable debug logs</strong> for the Service Manager, which is usually only needed when the<strong> Oracle Support </strong>requests it. This will generate a <code>ServiceManager-debug.log</code> file in your <code>var/log</code> directory, and it can be downloaded from the web UI and sent to the Oracle Support or your dbi GoldenGate expert for analysis.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="176" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-1024x176.png" alt="" class="wp-image-43875" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-1024x176.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-300x52.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-768x132.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-1536x264.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_debug_log-2048x352.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>When connected to a deployment in the web UI, you can also view different logs.</p>



<ul class="wp-block-list">
<li>From the home page, the <strong><em>Critical Events</em></strong> view displays the content of the <code>ER-events.log</code> file.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="148" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-1024x148.png" alt="" class="wp-image-43876" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-1024x148.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-300x43.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-768x111.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-1536x222.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_critical_events-2048x297.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ul class="wp-block-list">
<li>From the <strong><em>Services</em></strong> page, you have access to the <em><strong>Diagnosis Log</strong></em> of each service. They will respectively display the <code>adminsrvr.log</code>, <code>distsrvr.log</code>, <code>recvsrvr.log</code> and <code>pmsrvr.log</code> files. Similar to what I just explained, you can also enable debug logs temporarily if needed.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="296" height="692" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_dep_log_tabs.png" alt="" class="wp-image-43877" style="width:300px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_dep_log_tabs.png 296w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_dep_log_tabs-128x300.png 128w" sizes="auto, (max-width: 296px) 100vw, 296px" /></figure>
</div><p>L’article <a href="https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/">GoldenGate 26ai Logs Explained</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Create Distribution Paths in NGINX-Secured GoldenGate 26ai</title>
		<link>https://www.dbi-services.com/blog/create-distribution-paths-in-nginx-secured-goldengate-26ai/</link>
					<comments>https://www.dbi-services.com/blog/create-distribution-paths-in-nginx-secured-goldengate-26ai/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Fri, 17 Apr 2026 06:18:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[microservices]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[secure]]></category>
		<category><![CDATA[validation]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43475</guid>

					<description><![CDATA[<p>Setting up a distribution path is an important step when connecting two GoldenGate deployments. However, there are so many connection options that it&#8217;s hard to know how to proceed. In this blog, I will present the way to connect two deployments secured through NGINX. Here are the prerequisites before attempting the distribution path creation: In [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/create-distribution-paths-in-nginx-secured-goldengate-26ai/">Create Distribution Paths in NGINX-Secured GoldenGate 26ai</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Setting up a distribution path is an important step when connecting two GoldenGate deployments. However, there are so many connection options that it&#8217;s hard to know how to proceed. In this blog, I will present the way to <strong>connect two deployments secured through NGINX</strong>.</p>



<p>Here are the prerequisites before attempting the distribution path creation:</p>



<ul class="wp-block-list">
<li>Having<strong> two servers</strong>, each running a <strong>GoldenGate</strong> Microservices Architecture. I will use the latest version here, <strong>26ai</strong>.</li>



<li>Having a<strong> running extract on the source</strong> setup.</li>



<li><strong>Port openings</strong>: port <code>443</code> should be open between the two deployments.</li>
</ul>



<p>In my environment, I have the following:</p>



<ul class="wp-block-list">
<li><strong>Source environment</strong>: <code>oggvm1</code>, with a deployment named <code>ogg_test_01</code>, a <code>CDB01</code> with a <code>PDB1</code> containing a <code>APP_PDB1</code> schema and a <code>table1</code> table.</li>



<li><strong>Target environment</strong>: <code>oggvm2</code>, with the equivalent deployment <code>ogg_test_02</code>, <code>CDB02</code>, <code>PDB2</code>, <code>APP_PDB2</code> schema, and a <code>table2</code> table.</li>
</ul>



<p>With all of this in mind, here are the three steps needed to create a working distribution path between two GoldenGate deployments secured with NGINX:</p>



<ul class="wp-block-list">
<li><strong>Create a Path Connection</strong></li>



<li><strong>Add the certificates</strong> used in NGINX to secure the target deployment to the source&#8217;s certificate management store.</li>



<li><strong>Create and start the distribution path</strong>.</li>
</ul>



<h2 class="wp-block-heading" id="h-path-connection-creation">Path Connection Creation</h2>



<p>To open a connection to the target deployment <code>ogg_test_02</code>, the source deployment needs a <strong>path connection</strong>. As explained in a <a href="https://www.dbi-services.com/blog/creating-path-connections-with-goldengate-rest-api/" target="_blank" rel="noreferrer noopener">previous blog</a>, <strong>path connections are aliases of an existing user on a target deployment</strong>.</p>



<p>It is recommended to separate roles and not use the administrator account of your target deployment, so let&#8217;s first create the user.</p>



<ul class="wp-block-list">
<li>On <code>ogg_test_02</code> (target deployment), go to the <em><strong>User Administration</strong></em> tab and <strong>add a new user</strong>. For the role, Oracle recommends using the <code>Operator</code> role, so there is no reason to use the higher-privileged <code>Administrator</code> or <code>Security</code> roles.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="1015" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-1024x1015.png" alt="" class="wp-image-43760" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-1024x1015.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-300x297.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-150x150.png 150w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-768x761.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user-1536x1522.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_user.png 1538w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ul class="wp-block-list">
<li>On <code>ogg_test_01</code> (source deployment), <strong>create the path connection</strong>. Only the <code>Userid</code> and <code>Password</code> fields must match what you just created on the target. The alias is just known on the source side and doesn&#8217;t have to match the username set on the target deployment. The <strong>alias</strong> defined here in the source deployment <strong>will only appear when choosing a connection</strong> during the <strong>distribution path creation</strong>.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-1024x1024.png" alt="" class="wp-image-43761" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-1024x1024.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-300x300.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-150x150.png 150w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-768x769.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path-1534x1536.png 1534w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_path.png 1538w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-certificate-management">Certificate Management</h2>



<p>Because your <strong>deployments are secured with NGINX</strong>, you have to make sure that the certificates being used by one deployment are recognized by the other deployment. To do so, <strong>on the source only</strong>, you have to <strong>register the root certificate authority of the target deployment</strong>.</p>



<p>This can <strong>only</strong> be done at the <strong>Service Manager level</strong>. In the Service Manager web UI, go to <em><strong>Certificate Management</strong></em> and add a CA Certificate in the source deployment <code>ogg_test_01</code>. You have two options here.</p>



<ul class="wp-block-list">
<li>If the CA only needs to be registered on this specific deployment, you can register it with the <strong><em>Local</em></strong> option. This is the more secure option, but it is very often not needed.</li>



<li>If the CA registration should be shared with other deployments, you can register it with the <em><strong>Shared</strong></em> option.</li>
</ul>



<p>Paste the root certificate file used to secure your second deployment. The name used must be unique but will not be used anywhere else in the process.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1017" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-1017x1024.png" alt="" class="wp-image-43776" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-1017x1024.png 1017w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-298x300.png 298w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-150x150.png 150w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-768x773.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca-1526x1536.png 1526w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_add_ca.png 1538w" sizes="auto, (max-width: 1017px) 100vw, 1017px" /></figure>



<h2 class="wp-block-heading" id="h-how-should-i-register-a-certificate-chain">How should I register a certificate chain ?</h2>



<p>If the certificate file contains multiple certificates, GoldenGate doesn&#8217;t allow you to register them in one go. Instead, you need to <strong>break down the file and register each part individually</strong>. Again, the name and order in which you register the certificates do not matter, except for management purposes. I described the issue in more detail in a <a href="https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/" target="_blank" rel="noreferrer noopener">blog about the <code>OGG-30007</code> error</a>.</p>



<h2 class="wp-block-heading" id="h-distribution-path-creation">Distribution Path Creation</h2>



<p>We can now finally create the distribution path. On the <strong>source deployment</strong>, go on the <strong><em>Distribution Service Paths</em></strong> tab and register the path as such:</p>



<ul class="wp-block-list">
<li><strong><em>Path information</em></strong>: Specify the path name. If possible, make the target (and the source) visible in the name, to ease management when having multiple distribution paths.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="1019" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-1024x1019.png" alt="" class="wp-image-43762" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-1024x1019.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-300x298.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-150x150.png 150w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-768x764.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1-1536x1528.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_1.png 1538w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ul class="wp-block-list">
<li><strong><em>Source options</em></strong>: Here, you should only select the extract at the source of this distribution path. The rest will be filled automatically or can stay with the default value.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="1012" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2-1024x1012.png" alt="" class="wp-image-43764" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2-1024x1012.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2-300x297.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2-768x759.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2-1536x1518.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_2.png 1544w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<ul class="wp-block-list">
<li><strong><em>Target options</em></strong>: This is where the configuration is specific. Because we are using a <strong>NGINX-secured deployment</strong> on the target, you must click on <strong><em>Reverse proxy enabled</em></strong> and choose the <code>wss</code> <strong>target protocol</strong>.</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1011" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3-1011x1024.png" alt="" class="wp-image-43765" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3-1011x1024.png 1011w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3-296x300.png 296w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3-768x778.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3-1516x1536.png 1516w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_blog_nginx_dist_path_3.png 1528w" sizes="auto, (max-width: 1011px) 100vw, 1011px" /></figure>
</div>


<ul class="wp-block-list">
<li><strong><em>Advanced, Filtering and Managed Options</em></strong>: Nothing here is specific to our setup, but you can of course customize these options as needed.</li>
</ul>



<p>And that&#8217;s it. Your deployments are now connected, and you should see the trail files on the target once you start the distribution path.</p>



<pre class="wp-block-code"><code>oracle@oggvm2:~/ ll $OGG_DEPLOYMENT_HOME/var/lib/data/PDB1
total 0
-rw-r-----. 1 oracle oinstall 0 Mar 22 07:34 bb000000000</code></pre>



<h2 class="wp-block-heading" id="h-the-remote-peer-submitted-a-certificate-that-failed-validation">The remote peer submitted a certificate that failed validation</h2>



<p>If your distribution path doesn&#8217;t start and generates a &#8220;<em>certificate that failed validation</em>&#8221; error, it means that you incorrectly registered your certificates. Make sure that the target deployment&#8217;s certificates are registered on the source deployment&#8217;s service manager and not the other way around.</p>



<p>You can also try to use the certificate in an <code>OGG_CLIENT_TLS_CAPATH</code> environment variable on the source and connect with the <code>adminclient</code> to check if it&#8217;s working.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/create-distribution-paths-in-nginx-secured-goldengate-26ai/">Create Distribution Paths in NGINX-Secured GoldenGate 26ai</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/create-distribution-paths-in-nginx-secured-goldengate-26ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OGG-30007 : How To Register Certificates In GoldenGate ?</title>
		<link>https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/</link>
					<comments>https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Tue, 14 Apr 2026 06:39:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ca]]></category>
		<category><![CDATA[Certificate]]></category>
		<category><![CDATA[intermediate]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[ogg-30007]]></category>
		<category><![CDATA[PEM]]></category>
		<category><![CDATA[truststore]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43737</guid>

					<description><![CDATA[<p>After working on a GoldenGate deployment recently, I felt that the OGG-30007 error would be worth writing about. This error happens when registering certificates in GoldenGate. Whether you do it from the web UI or with the REST API, this GoldenGate error is detailed as such: This error occurs because GoldenGate expects exactly one PEM [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/">OGG-30007 : How To Register Certificates In GoldenGate ?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>After working on a GoldenGate deployment recently, I felt that the <code>OGG-30007</code> error would be worth writing about. This error happens when <a href="https://docs.oracle.com/en/database/goldengate/core/26/coredoc/deploy-add-ca-certificate.html" target="_blank" rel="noreferrer noopener">registering certificates in GoldenGate</a>. Whether you do it from the web UI or with the REST API, this GoldenGate error is detailed as such:</p>



<pre class="wp-block-code"><code>Processing of the certificate PEM portion of the certificate bundle resulted in more than one (1) certificate objects.

Code: OGG-30007

Cause: The read and decode processing of the specified portion of the certificate bundle produced more than one (1) objects. More than one PEM encoded object is present in the data.

Action: Review the specified portion of the certificate bundle and correct as needed. Only a single PEM encoded object is expected.</code></pre>



<p>This error occurs because GoldenGate expects exactly <strong>one PEM object per import</strong>, while a certificate chain file contains multiple certificates. In the web UI, a pop-up will alert you that something is wrong:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="367" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_ogg30007-1-1024x367.png" alt="" class="wp-image-43739" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_ogg30007-1-1024x367.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_ogg30007-1-300x108.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_ogg30007-1-768x275.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_ogg30007-1.png 1490w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>As mentioned, this typically happens when registering a certificate chain. For instance, you could face the issue when <strong>connecting two deployments secured with NGINX</strong>. The server presents a certificate chain including the intermediate, while the client (GoldenGate) must trust both the root and the intermediate.</p>



<p>But when the Certificate Authority doesn&#8217;t sign your certificate directly with the <strong>Root Certificate</strong>, but with an <strong>Intermediate Certificate</strong>, the server presents a certificate chain including the intermediate. A certificate like the following will generate an <code>OGG-30007</code> error if you try to add it to the truststore:</p>



<pre class="wp-block-code"><code>-----BEGIN CERTIFICATE-----
(intermediate)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(root)
-----END CERTIFICATE-----</code></pre>



<p>And to make sure that your connections work, you should <strong>not only add the root certificate, but also the intermediate certificate</strong>. Because of the way GoldenGate stores these certificates, two separate entries must be created in the truststore. To ease monitoring and certificate management, you can name them <code>rootCA_ogg_target</code> and <code>intermediateCA_ogg_target</code></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="145" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA-1024x145.png" alt="" class="wp-image-43740" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA-1024x145.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA-300x43.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA-768x109.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA-1536x218.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_webui_root_and_intermediate_CA.png 2044w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>With this, you should have no problem connecting GoldenGate deployments ! To avoid <code>OGG-30007</code>, ensure that each certificate is imported separately. In practice, this means <strong>extracting the root and intermediate certificates from the chain</strong> file and <strong>registering them as individual entries</strong> in the GoldenGate truststore.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/">OGG-30007 : How To Register Certificates In GoldenGate ?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/ogg-30007-how-to-register-certificates-in-goldengate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Overcome GoldenGate 26ai Bug On Custom Profiles</title>
		<link>https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/</link>
					<comments>https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 09 Apr 2026 06:56:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[add profile]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[custom profile]]></category>
		<category><![CDATA[hang]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43587</guid>

					<description><![CDATA[<p>In GoldenGate, processes have a few options that can be managed to fit your needs. When creating an extract, for instance, you can act on the following parameters: In the web UI, an extract profile can be customized during the third step of an extract creation called Managed Options. Here, you can choose to use [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/">Overcome GoldenGate 26ai Bug On Custom Profiles</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>In GoldenGate, processes have a few options that can be managed to fit your needs. When creating an extract, for instance, you can act on the following parameters:</p>



<ul class="wp-block-list">
<li><code>autoStart.enabled</code>: whether the process will start automatically after the Administration Server starts.</li>



<li><code>autoStart.delay</code>: delay in seconds before starting the process.</li>



<li><code>autoRestart.enabled</code>: whether to restart the process after it fails.</li>



<li><code>autoRestart.onSuccess</code>: the process is only restarted if it fails.</li>



<li><code>autoRestart.delay</code>: waiting time (in seconds) before attempting to restart a process once it fails.</li>



<li><code>autoRestart.retries</code>: maximum number of retries before stopping restart attempts.</li>



<li><code>autoRestart.window</code>: timeframe before GoldenGate will attempt to restart the process again.</li>



<li><code>autoRestart.disableOnFailure</code>: if set to True, GoldenGate will disable the restart if it fails to restart within the <code>retries</code>/<code>window</code> setting. You will have to start the process manually if this happens.</li>
</ul>



<p>In the web UI, an extract profile can be customized during the third step of an extract creation called <em><strong>Managed Options</strong></em>. Here, you can choose to use the default profile, a user-defined profile or custom settings specific to the new process.</p>



<p>However, <strong>a bug was introduced in GoldenGate 26ai</strong>. If you <strong>create a custom profile with the <code>adminclient</code></strong>, the web UI will sometimes hang when creating any new extract or replicat. This also affects 23ai installations that are patched to 26ai, so be very careful when patching an existing GoldenGate 23ai setup containing custom profiles ! After patching, you will not<strong> be able to access and manage </strong>your profiles<strong> </strong>anymore <strong>from the web UI</strong>.</p>



<h2 class="wp-block-heading" id="h-what-is-the-bug-exactly">What is the bug exactly ?</h2>



<p>To reproduce the bug, simply create an extract from the <code>adminclient</code>.</p>



<pre class="wp-block-code"><code>OGG (https://vmogg ogg_test_01) 1&gt; info profile *
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Auto&nbsp;&nbsp;&nbsp;&nbsp; Delay&nbsp;&nbsp;&nbsp;&nbsp; Auto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wait&nbsp;&nbsp;&nbsp;&nbsp; Reset&nbsp;&nbsp;&nbsp;&nbsp; Disable
Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp; Seconds&nbsp; Restart&nbsp;&nbsp; Retries&nbsp;&nbsp; Seconds&nbsp;&nbsp; Seconds&nbsp; on Failure
--------------------------------&nbsp; -----&nbsp; --------&nbsp; -------&nbsp; --------&nbsp; --------&nbsp; --------&nbsp; ----------
Default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No
OGG (https://vmogg ogg_test_01) 2&gt; add profile TestProfile autostart no
OGG (https://vmogg ogg_test_01) 3&gt; info profile *
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Auto&nbsp;&nbsp;&nbsp;&nbsp; Delay&nbsp;&nbsp;&nbsp;&nbsp; Auto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Wait&nbsp;&nbsp;&nbsp;&nbsp; Reset&nbsp;&nbsp;&nbsp;&nbsp; Disable
Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Start&nbsp;&nbsp; Seconds&nbsp; Restart&nbsp;&nbsp; Retries&nbsp;&nbsp; Seconds&nbsp;&nbsp; Seconds&nbsp; on Failure
--------------------------------&nbsp; -----&nbsp; --------&nbsp; -------&nbsp; --------&nbsp; --------&nbsp; --------&nbsp; ----------
Default&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No
TestProfile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; No</code></pre>



<p>In a GoldenGate 23ai web UI, you will see the following when creating an extract, in the <em><strong>Managed Options</strong></em> step:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="417" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ogg_add_extract_23ai_working-4-1024x417.png" alt="" class="wp-image-43713" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ogg_add_extract_23ai_working-4-1024x417.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ogg_add_extract_23ai_working-4-300x122.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ogg_add_extract_23ai_working-4-768x313.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ogg_add_extract_23ai_working-4.png 1213w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>However, in GoldenGate 26ai, the extract creation hangs indefinitely, and no error gets reported.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="397" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug-1024x397.png" alt="" class="wp-image-43714" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug-1024x397.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug-300x116.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug-768x298.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug-1536x596.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_add_extract_26ai_bug.png 1542w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Before the bug is solved by Oracle, <strong>what can you do</strong> ? The first thing you can do is <a href="https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/" target="_blank" rel="noreferrer noopener">modify the <code>Default</code> GoldenGate profile</a>, so that all extracts with this profile are affected. However, it means that you cannot fine-tune the settings for different processes, with different needs. After all, it is the reason why you should define profiles in the first place.</p>



<h2 class="wp-block-heading" id="h-is-there-a-workaround">Is there a workaround ?</h2>



<p>But if you still want to overcome this bug and having working profiles on 26ai until the bug gets corrected, you have two ways of doing this:</p>



<ul class="wp-block-list">
<li>Create profiles from the web UI. You can do this in the <em><strong>Managed Process Profiles</strong></em> tab of your deployment. Profiles created through this tab do not make the web UI hang indefinitely.</li>



<li>Create profiles with the REST API. As presented in <a href="https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/">this blog</a>, you can do this in two steps :
<ul class="wp-block-list">
<li>Creation of a new profile with the <a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-config-types-type-values-value-post.html" target="_blank" rel="noreferrer noopener">Create Configuration Value</a> endpoint on the <code>ogg:managedProcessSettings</code> type.</li>



<li>Creation of a new configuration <code>isDefault</code> set to <code>False</code> on the <code>ogg:<span style="background-color: initial;font-family: inherit;font-size: inherit;text-align: initial;color: initial">configDataDescription</span></code> type.</li>
</ul>
</li>
</ul>



<p>This way, you can create or recreate your profiles until the bug is solved.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/">Overcome GoldenGate 26ai Bug On Custom Profiles</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Monitoring GoldenGate Certificates Expiration</title>
		<link>https://www.dbi-services.com/blog/monitoring-goldengate-certificates-expiration/</link>
					<comments>https://www.dbi-services.com/blog/monitoring-goldengate-certificates-expiration/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Mon, 06 Apr 2026 07:09:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Certificate]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[restapi]]></category>
		<category><![CDATA[truststore]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43627</guid>

					<description><![CDATA[<p>Your GoldenGate certificates should be granted by a trusted Certificate Authority, which normally handles the monitoring of certificates. However, if you don&#8217;t want your future you, or a colleague, to spend too much time debugging which certificate should be renewed, you could monitor your certificates. In this blog, I will present a way to do [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/monitoring-goldengate-certificates-expiration/">Monitoring GoldenGate Certificates Expiration</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Your GoldenGate certificates should be <strong>granted by a trusted Certificate Authority</strong>, which normally handles the monitoring of certificates. However, if you don&#8217;t want your future you, or a colleague, to spend too much time debugging which certificate should be renewed, you could monitor your certificates. In this blog, I will present a way to do this with the REST API.</p>



<h2 class="wp-block-heading" id="h-certificates-types-in-goldengate">Certificates types in GoldenGate</h2>



<p>The first thing you need to know is that there are three types of certificates in a GoldenGate deployment. Each of them can be monitored separately in the REST API.</p>



<ul class="wp-block-list">
<li><strong>Server Certificates</strong>, which belong to the <code>server</code> type</li>



<li><strong>Client Certificates</strong>, which belong to the <code>client</code> type</li>



<li><strong>CA Certificates</strong>, which belong to the <code>truststore</code> type</li>
</ul>



<h2 class="wp-block-heading" id="h-certificate-monitoring-from-the-web-ui">Certificate monitoring from the web UI</h2>



<p>Before presenting the REST API monitoring of certificates, let&#8217;s see what we are supposed to be looking at. From the web UI, when <strong>connected to the Service Manager</strong>, you can observe the details of your certificates in the <em><strong>Certificate Management</strong></em> tab. I give below an example for both the Service Manager and a deployment in a secure GoldenGate installation.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="217" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1-1024x217.png" alt="" class="wp-image-43728" style="object-fit:cover" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1-1024x217.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1-300x63.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1-768x162.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1-1536x325.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_sm_certificates-1.png 1749w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="394" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1-1024x394.png" alt="" class="wp-image-43729" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1-1024x394.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1-300x116.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1-768x296.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1-1536x591.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/ogg_deployment_certificates-1.png 1901w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>I create short-term certificates on purpose for the example, and we see that the UI is designed to tell the user when the certificates are close to expiration. But of course, it&#8217;s better to have some sort of monitoring do the job for us.</p>



<h2 class="wp-block-heading" id="h-certificate-monitoring-with-the-rest-api">Certificate monitoring with the REST API</h2>



<p>With GoldenGate REST API, it is rather easy to monitor certificate expiration. Unfortunately, you <strong>cannot ask the API for a list of certificates close to expiration</strong>, so you will have to iterate over all certificates in your monitoring script.</p>



<p>I will use the Python client I presented in another blog, but you can of course rebuild each call manually. Here are the methods / endpoints you should use:</p>



<ul class="wp-block-list">
<li><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-get.html" target="_blank" rel="noreferrer noopener">List Deployments</a> &#8211; <code>GET /services/{version}/deployments</code>, to retrieve the list of deployments. The Service Manager is considered as a normal deployment here, so there is no need to separate it from the other deployments.</li>



<li><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-certificates-get.html" target="_blank" rel="noreferrer noopener">Retrieve Available Certificate Types</a> &#8211; <code>GET /services/{version}/deployments/{deployment}/certificates</code>, to retrieve the collection of certificate types. It should always be the list given earlier (<code>client</code>, <code>server</code> and <code>truststore</code>).</li>



<li><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-certificates-type-get.html" target="_blank" rel="noreferrer noopener">Retrieve Certificate Types</a> &#8211; <code>GET /services/{version}/deployments/{deployment}/certificates/{type}</code>, to get the <strong>list of certificates that belong to a specific type</strong> inside a deployment.</li>



<li><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-deployments-deployment-certificates-type-certificate-info-get.html" target="_blank" rel="noreferrer noopener">Retrieve Certificate Information</a> &#8211; <code>GET /services/{version}/deployments/{deployment}/certificates/{type}/{certificate}/info</code>, to retrieve the information on a specific certificate.</li>
</ul>



<p>I share below a full monitoring script that you can use to monitor all certificates in a GoldenGate setup. Feel free to adapt it to your own monitoring tool.</p>



<pre class="wp-block-code"><code>#!/usr/bin/env python3
"""
Oracle GoldenGate Certificate Monitoring Script
"""

from datetime import datetime, timezone
import sys

from oggrestapi import OGGRestAPI

if __name__ == '__main__':
    exit_code = 0  # 0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN

    try:
        # Initialize the OGG REST API client
        ogg_client = OGGRestAPI(
            url='https://vmogg:7809',
            username='ogg',
            password='ogg',
            verify_ssl=False)

        # Retrieve the list of deployments
        deployments = ogg_client.list_deployments()
        print(f"Deployments: {&#091;d&#091;'name'] for d in deployments]}")

        # For each deployment, retrieve the list of certificates and check their expiration dates
        for deployment in deployments:
            deployment_name = deployment&#091;'name']
            print(f"    Checking certificates for deployment: {deployment_name}")

            certificate_types = ogg_client.retrieve_available_certificate_types_deployment(
                deployment=deployment_name)
            print(f"    Certificate types for deployment {deployment_name}: {&#091;ct&#091;'name'] for ct in certificate_types]}")
            for cert_type in certificate_types:
                cert_type_name = cert_type&#091;'name']
                print(f"        Checking certificates for type: {cert_type_name}")
                certificates = ogg_client.retrieve_certificate_types(
                    deployment=deployment_name,
                    type=cert_type_name)
                for cert in certificates:
                    cert_name = cert&#091;'name']
                    print(f"            Certificate: {cert_name}")
                    certificate_information = ogg_client.retrieve_certificate_information_deployment(
                        deployment=deployment_name,
                        type=cert_type_name,
                        certificate=cert_name)
                    expiration_date = certificate_information&#091;'certificate']&#091;'validTo']
                    print(f"                Certificate Expiry Date: {expiration_date}")
                    expire_in = datetime.strptime(expiration_date, "%Y-%m-%dT%H:%M:%SZ").replace(tzinfo=timezone.utc) - datetime.now(timezone.utc)
                    is_expired = expire_in.total_seconds() &lt; 0

                    if is_expired:
                        print(f"                WARNING: Certificate '{cert_name}' in deployment '{deployment_name}' of type '{cert_type_name}' has expired on {expiration_date}")
                        exit_code = max(exit_code, 2)  # CRITICAL
                    else:
                        days_left = int(expire_in.total_seconds() / 86400)
                        print(f"                Certificate '{cert_name}' in deployment '{deployment_name}' of type '{cert_type_name}' will expire in {days_left} days on {expiration_date}")
                        if days_left &lt; 30:
                            exit_code = max(exit_code, 1)  # WARNING

    except Exception as e:
        print(f"UNKNOWN: {e}")
        sys.exit(3)

    sys.exit(exit_code)</code></pre>



<p>On an installation where certificates are close to expire, the output looks like this:</p>



<pre class="wp-block-code"><code>Deployments: &#091;'ServiceManager', 'ogg_test_01']
    Checking certificates for deployment: ServiceManager
    Certificate types for deployment ServiceManager: &#091;'client', 'server', 'truststore']
        Checking certificates for type: client
        Checking certificates for type: server
            Certificate: default
                Certificate Expiry Date: 2026-03-31T05:54:15Z
                Certificate 'default' in deployment 'ServiceManager' of type 'server' will expire in 0 days on 2026-03-31T05:54:15Z
        Checking certificates for type: truststore
    Checking certificates for deployment: ogg_test_01
    Certificate types for deployment ogg_test_01: &#091;'client', 'server', 'truststore']
        Checking certificates for type: client
            Certificate: default
                Certificate Expiry Date: 2026-03-31T05:54:15Z
                Certificate 'default' in deployment 'ogg_test_01' of type 'client' will expire in 0 days on 2026-03-31T05:54:15Z
        Checking certificates for type: server
            Certificate: default
                Certificate Expiry Date: 2026-03-31T05:54:15Z
                Certificate 'default' in deployment 'ogg_test_01' of type 'server' will expire in 0 days on 2026-03-31T05:54:15Z
        Checking certificates for type: truststore
            Certificate: XCertUser-467fd0986deb
                Certificate Expiry Date: 2026-03-31T05:54:15Z
                Certificate 'XCertUser-467fd0986deb' in deployment 'ogg_test_01' of type 'truststore' will expire in 0 days on 2026-03-31T05:54:15Z
            Certificate: installed_0
                Certificate Expiry Date: 2026-03-31T05:54:15Z
                Certificate 'installed_0' in deployment 'ogg_test_01' of type 'truststore' will expire in 0 days on 2026-03-31T05:54:15Z</code></pre>



<p></p>
<p>L’article <a href="https://www.dbi-services.com/blog/monitoring-goldengate-certificates-expiration/">Monitoring GoldenGate Certificates Expiration</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/monitoring-goldengate-certificates-expiration/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Change GoldenGate Default Extract Profile</title>
		<link>https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/</link>
					<comments>https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 02 Apr 2026 06:31:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[autorestart]]></category>
		<category><![CDATA[autostart]]></category>
		<category><![CDATA[custom]]></category>
		<category><![CDATA[default]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[restapi]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43567</guid>

					<description><![CDATA[<p>As part of a GoldenGate setup automation, changing the Default profile of your extracts and replicats seems like a good start if you don&#8217;t want to deal with custom profiles or changing each individual configuration. Unfortunately, there is no easy way to modify an existing profile from the adminclient (there is no alter profile command). [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/">Change GoldenGate Default Extract Profile</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>As part of a GoldenGate setup automation, changing the <code>Default</code> profile of your extracts and replicats seems like a good start if you don&#8217;t want to deal with custom profiles or changing each individual configuration.</p>



<p>Unfortunately, there is no easy way to modify an existing profile from the <code>adminclient</code> (there is no <code>alter profile</code> command). The <code>Default</code> profile makes no exception, so you will have to use the REST API for this. In this blog, I will present two ways of doing it:</p>



<ul class="wp-block-list">
<li>Updating the <code>Default</code> profile directly.</li>



<li>Creating a custom profile, and setting it as <code>Default</code>.</li>
</ul>



<p>Using the Python client for GoldenGate I presented in another <a href="https://www.dbi-services.com/blog/production-ready-goldengate-rest-client-in-python/" target="_blank" rel="noreferrer noopener">blog post</a>, you can easily create a session connecting to your GoldenGate setup and retrieve the existing configuration. For this, we will use the following methods / endpoints:</p>



<ul class="wp-block-list">
<li><code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-config-types-type-values-value-get.html" target="_blank" rel="noreferrer noopener">retrieve_configuration_value</a></code> to get the current configuration (<code>GET /services/{version}/config/types/{type}/values/{value}</code>)</li>



<li><code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-config-types-type-values-value-put.html" target="_blank" rel="noreferrer noopener">replace_configuration_value</a></code> to update the profile (<code>PUT /services/{version}/config/types/{type}/values/{value}</code>) </li>
</ul>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: ; notranslate">
from oggrestapi import OGGRestAPI

ogg_client=OGGRestAPI(
    url=&quot;https://vmogg:7810&quot;,
    username=&quot;ogg&quot;,
    password=&quot;ogg&quot;
)

ogg_client.retrieve_configuration_value(
    value=&#039;ogg:managedProcessSettings:Default&#039;,
    type=&#039;ogg:managedProcessSettings&#039;)
</pre></div>


<p>This gives us the basic configuration of all new extracts and replicats in GoldenGate. Let&#8217;s see the default values:</p>



<pre class="wp-block-code"><code>&gt;&gt;&gt; ogg_client.retrieve_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:Default',
&nbsp;&nbsp;&nbsp; type='ogg:managedProcessSettings')
{'$schema': 'ogg:managedProcessSettings', 'autoStart': {'enabled': False, 'delay': 0}, 'autoRestart': {'enabled': False, 'onSuccess': False, 'delay': 0, 'retries': 9, 'window': 60, 'disableOnFailure': True}}</code></pre>



<p>Let&#8217;s have a look at the different parameters here:</p>



<ul class="wp-block-list">
<li><code>autoStart.enabled</code>: whether the process will start automatically after the Administration Server starts.</li>



<li><code>autoStart.delay</code>: delay in seconds before starting the process.</li>



<li><code>autoRestart.enabled</code>: whether to restart the process after it fails.</li>



<li><code>autoRestart.onSuccess</code>: the process is only restarted if it fails.</li>



<li><code>autoRestart.delay</code>: waiting time (in seconds) before attempting to restart a process once it fails.</li>



<li><code>autoRestart.retries</code>: maximum number of retries before stopping restart attempts.</li>



<li><code>autoRestart.window</code>: timeframe before GoldenGate will attempt to restart the process again.</li>



<li><code>autoRestart.disableOnFailure</code>: if set to True, GoldenGate will disable the restart if it fails to restart within the <code>retries</code>/<code>window</code> setting. You will have to start the process manually if this happens.</li>
</ul>



<h2 class="wp-block-heading" id="h-updating-the-default-profile-directly">Updating the <code>Default</code> profile directly</h2>



<p>To update the <code>Default</code> profile, just create your own configuration and use the following example (based on the description given above) to push it to your GoldenGate deployment. Here, for instance, <code>autoStart</code> will be delayed by 30 seconds, and the process will try to restart every 5 minutes, and stop trying to restart after six retries. It will attempt to start again after two hours.</p>



<pre class="wp-block-code"><code>ogg_client.replace_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:Default',
&nbsp;&nbsp;&nbsp; type='ogg:managedProcessSettings',
&nbsp;&nbsp;&nbsp; data={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '$schema': 'ogg:managedProcessSettings',
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'autoStart': {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'enabled': True,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'delay': 30
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'autoRestart': {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'enabled': True,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'retries': 6,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'delay': 300,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'window': 7200,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'onSuccess': False,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'disableOnFailure': False
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; }
)</code></pre>



<p>We can check by retrieving the configuration again.</p>



<pre class="wp-block-code"><code># Checking new configuration with the REST API
ogg_client.retrieve_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:Default',
&nbsp;&nbsp;&nbsp; type='ogg:managedProcessSettings')
{'$schema': 'ogg:managedProcessSettings', 'autoStart': {'enabled': True, 'delay': 30}, 'autoRestart': {'enabled': True, 'retries': 6, 'delay': 300, 'window': 7200, 'onSuccess': False, 'disableOnFailure': False}}</code></pre>



<p>Or you can check in the web UI in the <strong><em>Managed Process Profiles</em></strong> tab.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="1535" height="168" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.44.png" alt="" class="wp-image-43717" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.44.png 1535w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.44-300x33.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.44-1024x112.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.44-768x84.png 768w" sizes="auto, (max-width: 1535px) 100vw, 1535px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="959" height="545" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.46.png" alt="" class="wp-image-43718" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.46.png 959w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.46-300x170.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/04/Screenshot-2026-04-01-at-16.55.46-768x436.png 768w" sizes="auto, (max-width: 959px) 100vw, 959px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-setting-a-custom-profile-to-default">Setting a custom profile to <code>Default</code></h2>



<p>If for some reason you would rather keep the <code>Default</code> profile and have a custom profile as default, you have to create a new profile first and set it as default. To do this, we use the <code><a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-config-types-type-values-value-post.html" target="_blank" rel="noreferrer noopener">create_configuration_value</a></code> method / endpoint, which is the same endpoint as before but with the <code>POST</code> verb. If we keep the same profile as in the previous example, here is the script to run. Only the method changes, as well as the value, where <code>Default</code> is changed with the name of your profile (<code>NewDefaultProfile</code>, here).</p>



<pre class="wp-block-code"><code>ogg_client.create_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:NewDefaultProfile',
&nbsp;&nbsp;&nbsp; type='ogg:managedProcessSettings',
&nbsp;&nbsp;&nbsp; data={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '$schema': 'ogg:managedProcessSettings',
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'autoStart': {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'enabled': True,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'delay': 30
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; },
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'autoRestart': {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'enabled': True,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'retries': 6,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'delay': 300,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'window': 7200,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'onSuccess': False,
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'disableOnFailure': False
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp; }
)</code></pre>



<p>After this, you need to do two things:</p>



<ul class="wp-block-list">
<li><strong>Create</strong> the <code>isDefault</code> <strong>flag for your new profile</strong>, and set it to <code>True</code>. This is done with the same <code>create_configuration_value</code> method, but on a different type called <code>ogg:configDataDescription</code>.</li>



<li><strong>Update</strong> the <code>isDefault</code> <strong>flag for the <code>Default</code> profile</strong> to <code>False</code>. Since the property already exists, we will use the <code>replace_configuration_value</code> method.</li>
</ul>



<p>Here is how to do the creation of the flag:</p>



<pre class="wp-block-code"><code>ogg_client.create_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:NewDefaultProfile',
&nbsp;&nbsp;&nbsp; type='ogg:<span style="background-color: initial;font-family: inherit;font-size: inherit;text-align: initial;color: initial">configDataDescription</span>',
&nbsp;&nbsp;&nbsp; data={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'isDefault': True
    }
)</code></pre>



<p>And to update the <code>Default</code> profile:</p>



<pre class="wp-block-code"><code>ogg_client.replace_configuration_value(
&nbsp;&nbsp;&nbsp; value='ogg:managedProcessSettings:Default',
&nbsp;&nbsp;&nbsp; type='ogg:<span style="background-color: initial;font-family: inherit;font-size: inherit;text-align: initial;color: initial">configDataDescription</span>',
&nbsp;&nbsp;&nbsp; data={
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'isDefault': False
    }
)</code></pre>



<p>From now on, any new extract or replicat will be assigned to this <code>NewDefaultProfile</code> !</p>
<p>L’article <a href="https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/">Change GoldenGate Default Extract Profile</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbi-services.com/blog/change-goldengate-default-extract-profile/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: www.dbi-services.com @ 2026-05-07 15:20:16 by W3 Total Cache
-->