<?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>Archives des Oracle - dbi Blog</title>
	<atom:link href="https://www.dbi-services.com/blog/category/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbi-services.com/blog/category/oracle/</link>
	<description></description>
	<lastBuildDate>Sat, 30 May 2026 14:47:21 +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>Archives des Oracle - dbi Blog</title>
	<link>https://www.dbi-services.com/blog/category/oracle/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GoldenGate 26ai out-of-place patching with the web UI</title>
		<link>https://www.dbi-services.com/blog/goldengate-26ai-out-of-place-patching-with-the-web-ui/</link>
					<comments>https://www.dbi-services.com/blog/goldengate-26ai-out-of-place-patching-with-the-web-ui/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Sun, 31 May 2026 07:15:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[19]]></category>
		<category><![CDATA[23]]></category>
		<category><![CDATA[23ai]]></category>
		<category><![CDATA[26]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[out-of-place]]></category>
		<category><![CDATA[patching]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[web]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44392</guid>

					<description><![CDATA[<p>For some customers, the end of support for GoldenGate 19c in May this year and the migration to Microservices Architecture mean that they have to adapt their patching procedures (if they had any !). Let&#8217;s see how to patch a GoldenGate Microservices Architecture out of place efficiently. This guide is designed for GoldenGate 26ai because [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/goldengate-26ai-out-of-place-patching-with-the-web-ui/">GoldenGate 26ai out-of-place patching with the web UI</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>For some customers, the <a href="https://www.dbi-services.com/blog/upgrade-goldengate-from-classic-to-microservices-architecture-before-its-too-late/" target="_blank" rel="noreferrer noopener">end of support for GoldenGate 19c</a> in May this year and the <strong>migration to Microservices Architecture</strong> mean that they have to adapt their patching procedures (if they had any !). Let&#8217;s see how to <strong>patch a GoldenGate Microservices Architecture out of place</strong> efficiently. This guide is designed for GoldenGate 26ai because this version introduces some small changes. However, you can follow this blog to patch other versions of GoldenGate.</p>



<p>As for Oracle databases, the idea is to:</p>



<ul class="wp-block-list">
<li>Set up a <strong>new GoldenGate home</strong>.</li>



<li><strong>Switch the running processes</strong> to the new version of GoldenGate.</li>
</ul>



<p>The nice thing is that since a few patches, Oracle now always delivers <strong>GoldenGate patches</strong> in <strong>two versions</strong>: the <strong>standard patch</strong>, applied on top of an existing installation, and a <strong>complete installation</strong>, which includes the patch. In this blog, we will use the second option.</p>



<h2 class="wp-block-heading" id="h-installing-the-latest-version-of-goldengate">Installing the latest version of GoldenGate</h2>



<p>At the time of writing, version <code>23.26.2.0.1</code> (patch 39299258) was just released, but you should definitely check on the Oracle Support website to see if a new patch is available.</p>



<p>As instructed in the installation guide for GoldenGate, just <strong>unzip the patched installation</strong> to a temporary directory and use the <code>runInstaller</code> with the following <code>oggcore.rsp</code> response file.</p>



<pre class="wp-block-code"><code>&gt; cat /home/oracle/oggcore.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_ogginstall_response_schema_v26_1_0
INSTALL_OPTION=ORA23ai
SOFTWARE_LOCATION=/u01/app/ogg/product/23.26.2.0.1
INVENTORY_LOCATION=/u01/app/oraInventory
UNIX_GROUP_NAME=oinstall

&gt; /u01/stage/fbo_ggs_Linux_x64_Oracle_services_shiphome/Disk1/runInstaller -silent -responseFile /home/oracle/oggcore.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 17094 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4095 MB    Passed
&#091;...]
Successfully Setup Software.
The installation of Oracle GoldenGate Services was successful.</code></pre>



<p>50% of the work is already done, but it&#8217;s definitely not the hardest part ! If you&#8217;re wondering how to take this out-of-place patching procedure and adapt it to GoldenGate 19c, just remember to set <code>INSTALL_OPTION=ORA19c</code> in the <code>oggcore.rsp</code> response file.</p>



<h2 class="wp-block-heading" id="h-changing-ogg-home-from-the-web-ui">Changing <code>OGG_HOME</code> from the web UI</h2>



<p>Now that you have your new GoldenGate home, you are <strong>ready to switch</strong>. There are multiple ways of doing it, starting with updating your installation from the web UI. Here are the steps in the process:</p>



<ul class="wp-block-list">
<li>Updating the <code>OGG_HOME</code> of the Service Manager</li>



<li>Restarting the Service Manager</li>



<li>Optionally, restart the services attached to the Service Manager.</li>



<li>Updating the <code>OGG_HOME</code> of the deployments (one at a time)</li>



<li>Restarting the deployments</li>



<li>Restarting extracts, replicats and distribution paths</li>
</ul>



<p>To start, just log in to the service manager and go to the <em><strong>Deployments &gt; Service Manager &gt; Details</strong></em> tab.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" width="549" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_details_tab-549x1024.png" alt="" class="wp-image-44785" style="width:300px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_details_tab-549x1024.png 549w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_details_tab-161x300.png 161w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_details_tab.png 620w" sizes="(max-width: 549px) 100vw, 549px" /></figure>
</div>


<p>All you need to do is to edit the <em><strong>Deployment detail</strong></em>, by setting the new value for OGG_HOME. </p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="310" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_alter_deployment-1024x310.png" alt="" class="wp-image-44786" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_alter_deployment-1024x310.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_alter_deployment-300x91.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_alter_deployment-768x232.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_alter_deployment.png 1528w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>After updating the Service Manager, you can safely restart it from the web UI <strong><em>Home</em></strong> tab.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="1024" height="250" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager-1024x250.png" alt="" class="wp-image-44787" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager-1024x250.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager-300x73.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager-768x188.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager-1536x376.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_service_manager.png 2020w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>If you check on your server, you should see the <code>ServiceManager</code> process using the latest <code>OGG_HOME</code> location:</p>



<pre class="wp-block-code"><code>oracle@vmogg:~/ &#091;ogg] ps -ef|grep ServiceManager
oracle      1709       1  0 14:47 ?        00:00:03 /u01/app/ogg/product/23.26.2.0.1/bin/ServiceManager --quiet</code></pre>



<p>A new process named <code>AIService</code> was introduced in 26ai. If it is still running on the old <code>OGG_HOME</code> even after restarting the <code>ServiceManager</code> deployment, you should <strong>restart it from the web UI</strong>. Just click on the <code>ServiceManager</code> deployment, stop the AI Service and restart it.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="268" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-1024x268.png" alt="" class="wp-image-44879" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-1024x268.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-300x79.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-768x201.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-1536x402.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_webui_aiservice-2048x536.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>At this point, it is important to know that all <strong>your deployment processes</strong>, including extracts and replicats, <strong>are still running</strong> on the old GoldenGate home directory. Besides checking the server processes, you can verify the version from the web UI by clicking on the top-right profile icon and on <em><strong>About</strong></em>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="426" height="526" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about.png" alt="" class="wp-image-44783" style="width:200px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about.png 426w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about-243x300.png 243w" sizes="auto, (max-width: 426px) 100vw, 426px" /></figure>
</div>


<p>In the service manager UI, you will have the new version:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="656" height="250" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_sm.png" alt="" class="wp-image-44781" style="width:400px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_sm.png 656w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_sm-300x114.png 300w" sizes="auto, (max-width: 656px) 100vw, 656px" /></figure>
</div>


<p>And in the administration service UI, the old version is still there:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="712" height="266" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_admin.png" alt="" class="wp-image-44782" style="width:400px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_admin.png 712w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_about_admin-300x112.png 300w" sizes="auto, (max-width: 712px) 100vw, 712px" /></figure>
</div>


<p>You can now update your deployments, one at a time, by repeating the exact same procedure. From the Service Manager web UI, go to the <em><strong>Details</strong></em> tab of your deployments. Then, edit the <em><strong>Deployment detail</strong></em> and set <code>OGG_HOME</code> to the new value.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="432" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_deployment_detail-1024x432.png" alt="" class="wp-image-44784" style="width:700px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_deployment_detail-1024x432.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_deployment_detail-300x127.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_deployment_detail-768x324.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_deployment_detail.png 1378w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Once updated, restart the deployment from the same <em><strong>Home</strong></em> tab where you restarted the Service Manager earlier.</p>



<p>Once all your deployments are running on the new home, you can restart the extracts, replicats and distribution paths. Connected to the <strong>Administration Service</strong> in the web UI, restart them one by one or using the <strong><em>Group Action</em></strong> button.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="156" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc-1024x156.png" alt="" class="wp-image-44788" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc-1024x156.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc-300x46.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc-768x117.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc-1536x233.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_patch_restart_proc.png 2014w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-some-services-are-still-running-on-the-old-ogg-home">Some services are still running on the old <code>OGG_HOME</code></h2>



<p>If some <strong>services are still running</strong> on the old <code>OGG_HOME</code>, do not worry. The web UI or the REST API will return a response before restarting all services. More specifically, for the deployments, the restart will succeed as long as the Administration Service (<code>adminsrvr</code>) is restarted. The Receiver Service (<code>recvsrvr</code>) or the Distribution Service (<code>distsrvr</code>) might take more time to restart. Just <strong>wait a bit</strong> and it should be good. If, after a few minutes, the services are still running on the old home, <strong>restart them manually</strong> (still from the web UI).</p>



<h2 class="wp-block-heading" id="h-other-things-to-consider">Other things to consider</h2>



<p>If you decide to change the name of your home at every release, remember to change the <code>OGG_HOME</code> in all scripts and environments. This might include:</p>



<ul class="wp-block-list">
<li>DMK environment files.</li>



<li><code>systemd</code> service file, which might include the <code>OGG_HOME</code> variable.</li>
</ul>
<p>L’article <a href="https://www.dbi-services.com/blog/goldengate-26ai-out-of-place-patching-with-the-web-ui/">GoldenGate 26ai out-of-place patching with the web UI</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-out-of-place-patching-with-the-web-ui/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GoldenGate : Regenerate NGINX Reverse Proxy After Deployment Changes</title>
		<link>https://www.dbi-services.com/blog/reconfigure-nginx-after-adding-a-goldengate-deployment/</link>
					<comments>https://www.dbi-services.com/blog/reconfigure-nginx-after-adding-a-goldengate-deployment/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 28 May 2026 15:50:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[19c]]></category>
		<category><![CDATA[21c]]></category>
		<category><![CDATA[23ai]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[microservices]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[ogg-12031]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[reverse]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44851</guid>

					<description><![CDATA[<p>Configuring an NGINX reverse proxy for GoldenGate is well documented by Oracle, but what is not is the implication of adding or removing deployments. In fact, when modifying your GoldenGate deployments, you will have to reconfigure the NGINX reverse proxy. If you don&#8217;t, part of your installation will not be working anymore. This is what [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/reconfigure-nginx-after-adding-a-goldengate-deployment/">GoldenGate : Regenerate NGINX Reverse Proxy After Deployment Changes</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Configuring an <strong>NGINX reverse proxy</strong> for <strong>GoldenGate</strong> is well <a href="https://docs.oracle.com/en/database/goldengate/core/26/coredoc/secure-configure-reverse-proxy-nginx-access-oggma.html#GUID-E492EF39-EA43-44D5-A096-BAE1ED8FC007" target="_blank" rel="noreferrer noopener">documented</a> by Oracle, but what is not is the implication of <strong>adding or removing deployments</strong>. In fact, when modifying your GoldenGate deployments, you will have to reconfigure the NGINX reverse proxy.</p>



<p>If you don&#8217;t, part of your installation will not be working anymore. This is what will happen in the web UI:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="475" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_webui_nginx_multi_deploy-1024x475.png" alt="" class="wp-image-44852" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_webui_nginx_multi_deploy-1024x475.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_webui_nginx_multi_deploy-300x139.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_webui_nginx_multi_deploy-768x356.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_webui_nginx_multi_deploy.png 1228w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>In the <code>adminclient</code>, you will receive an <code>OGG-12031</code> error when connecting to the deployment, with the same error : &#8220;<em>The requested resource does not exist</em>&#8220;.</p>



<pre class="wp-block-code"><code>OGG (not connected) &gt; connect https://vmogg deployment ogg_test_02 user ogg
Password for 'ogg' at 'https://vmogg':

2026-05-28T12:42:54Z  ERROR   OGG-12031  The requested resource does not exist.</code></pre>



<p>And the same error will happen when calling the REST API of your new deployment:</p>



<pre class="wp-block-code"><code>RuntimeError: ERROR (code 404) - https://vmogg/services/ogg_test_02/adminsrvr/v2/extracts: The requested resource does not exist.</code></pre>



<p>The <strong>NGINX configuration</strong> generated by GoldenGate is <strong>static</strong>. Indeed, the file located in the <code>/etc/nginx/conf.d</code> directory contains deployment-specific routes generated from the GoldenGate setup at the time of execution. You can verify this by searching for an existing deployment name in the configuration:</p>



<pre class="wp-block-code"><code>&gt; grep ogg_test_01 /etc/nginx/conf.d/ogg.conf | wc -l
187</code></pre>



<p>Since the deployment name is an integral part of the API calls, and given that the configuration is not dynamic, after <strong>adding or removing a deployment</strong>, you will have to <strong>regenerate the configuration file</strong>.</p>



<h2 class="wp-block-heading" id="h-reconfiguring-nginx-reverse-proxy">Reconfiguring NGINX reverse proxy</h2>



<p>You can regenerate the configuration with the <code>ReverseProxySettings</code> utility in the <code>$OGG_HOME/lib/utl/reverseproxy</code> directory. With the <code>oracle</code> user:</p>



<pre class="wp-block-code"><code>$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --user ogg --port 443 --output /home/oracle/ogg.conf http://localhost:7809</code></pre>



<p>Make sure to adapt the GoldenGate username and the port to the Service Manager (<code>7809</code> is the default). If GoldenGate is accessed through a VIP (in a RAC setup, for instance), add the <code>--host</code> parameter:</p>



<pre class="wp-block-code"><code>$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --user ogg --port 443 --output /home/oracle/ogg.conf http://localhost:7809 --host ogg-vip</code></pre>



<p>Once the new configuration is available, as <code>root</code>, edit the new file to <strong>include SSL parameters</strong>. If you don&#8217;t do this, <strong>NGINX will fail to restart</strong>, and your whole GoldenGate installation will not be accessible anymore.</p>



<pre class="wp-block-code"><code>&gt; grep ssl_certificate /etc/nginx/conf.d/ogg.conf
    ssl_certificate         /etc/nginx/ssl/ogg.pem;
    ssl_certificate_key     /etc/nginx/ssl/ogg.key;</code></pre>



<p>For these parameters, just reuse the ones you already had in your current configuration. With the <code>root</code> user, replace the old configuration with the new one.</p>



<pre class="wp-block-code"><code>cd /etc/nginx/conf.d/
mv ogg.conf ogg.conf_old
mv /home/oracle/ogg.conf .
chown root:root ogg.conf</code></pre>



<p>Before restarting NGINX, <strong>test the configuration</strong>:</p>



<pre class="wp-block-code"><code>&gt; nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful</code></pre>



<p>Finally, <strong>restart NGINX</strong> to apply the new configuration.</p>



<pre class="wp-block-code"><code>systemctl restart nginx</code></pre>



<p>After restarting NGINX, the <strong>new deployment becomes accessible</strong> from the web UI, the <code>adminclient</code> and the REST API.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/reconfigure-nginx-after-adding-a-goldengate-deployment/">GoldenGate : Regenerate NGINX Reverse Proxy After Deployment Changes</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/reconfigure-nginx-after-adding-a-goldengate-deployment/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Oracle Database 26ai Client and SQLNET.EXPIRE_TIME</title>
		<link>https://www.dbi-services.com/blog/oracle-database-26ai-client-and-sqlnet-expire_time/</link>
					<comments>https://www.dbi-services.com/blog/oracle-database-26ai-client-and-sqlnet-expire_time/#respond</comments>
		
		<dc:creator><![CDATA[Marc Wagner]]></dc:creator>
		<pubDate>Fri, 22 May 2026 13:34:46 +0000</pubDate>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Dead Connection Detection]]></category>
		<category><![CDATA[EXPIRE_TIME]]></category>
		<category><![CDATA[Oracle 26ai Client]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44747</guid>

					<description><![CDATA[<p>We have been facing one issue at one of our customer where the Oracle Client connections remained opened for days blocking some avaloq JobNetz. We have been doing some tests and we could fortunately find a solution resolving the problem thanks to Oracle Database 26ai supporting now SQLNET.EXPIRE_TIME on the client side. Through this blog, [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-database-26ai-client-and-sqlnet-expire_time/">Oracle Database 26ai Client and SQLNET.EXPIRE_TIME</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>We have been facing one issue at one of our customer where the Oracle Client connections remained opened for days blocking some avaloq JobNetz. We have been doing some tests and we could fortunately find a solution resolving the problem thanks to Oracle Database 26ai supporting now SQLNET.EXPIRE_TIME on the client side. Through this blog, I would like to share with you the problem and then the tests that have been performed helping us to conclude to a solution.</p>



<span id="more-44747"></span>



<h3>Environment and problem description</h3>



<p>At our customer environment, client connection run from the HelperVM does not establish database connections directly to the database listener. The connection goes through the Network Load Balancer, so called NLB, and the Oracle Connection Manager, so called CMAN.</p>



<p>The diagram below describes the database connection establishment process.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="537" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/diagram-1024x537.jpg" alt="" class="wp-image-44751" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/diagram-1024x537.jpg 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/diagram-300x157.jpg 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/diagram-768x403.jpg 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/diagram.jpg 1396w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>This is how it works.</p>



<ul class="wp-block-list">
<li>1 &#8211; Client seeks for connection details (ideally, get the connection details from Oracle Directory Service)</li>



<li>2 &#8211; Client connects to Network Load Balancer</li>



<li>3 &#8211; Network Load Balancer &#8220;forwards&#8221; the request to Oracle Connection MANager using Virtual IP</li>



<li>4 &#8211; Oracle Connection MANager acts as a rule-based firewall and ensure the database target service is running on the &#8220;white listed targets (next_hop)</li>



<li>5 &#8211; Oracle Database establish connectivity upon credential validate (Oracle listener acts in between). The listener hands the connection over to the Oracle CMAN gateway process, which passes data back and forth between the client and the db-server and collects statistics.</li>
</ul>



<p>We could observed per reverse engineering&nbsp;&nbsp;technique that the TCP connection established between the Oracle client and Oracle CMAN works upon Network Load Balancer Virtual IP.</p>



<p>The Network Load Balancer needs for Session persistence &#8220;statefullnes&#8221; to be enabled. This means that once the connection is established, the NLB &#8220;remembers&#8221; established connections and fails them over in case of planned downtime.</p>



<p>We have been facing some broken connectivity issue. Checking Linux socket connection with linux ss command (# ss -nop) we could see TCP connection hungs between client and NLB virtual IP (CNAME DNS entry). On CMAN and DB-Server side the connection were already cleaned up as per Dead Connection Detection configuration. We can see in the diagram that EXPIRE_TIME is setup with a value of 10 minutes on the CMAN side and the listener configuration from the VM Cluster database.</p>



<p>The connection was still opened on the client side because:</p>



<ul class="wp-block-list">
<li>The client was still waiting on a result which would never come</li>



<li>TCP connection to the NLB Virtual IP was still existing albeit closed with the CMAN and database listener</li>



<li>TCP connection to the NLB would remain alive for days</li>
</ul>



<p>The problem is that by default Oracle client does not enable TCP Keepalive, which is an expected behavior. Oracle expects the keepalive to be set on the server side. The “Dead Connection Detection” will then be enforced for all clients.</p>



<p>TCP Keepalive should then be managed in our case on the client side. And we are currently running Oracle 19c Client.</p>



<h3>EXPIRE_TIME handled on Oracle 19c Client</h3>



<p>Oracle 19c client does not come with SQLNET.EXPIRE_TIME aka &#8220;Oracle dead connection detection&#8221;, unless hacked over connection string hidden (unsupported) parameter ENABLE_BROKEN. </p>



<p>See following blog from a one of my former colleagues: </p>



<p><a href="https://www.dbi-services.com/blog/sqlnet-expire_time-and-enablebroken">sqlnet-expire_time and enablebroken</a></p>



<p>And what about Oracle 26ai Client? Let&#8217;s do some test&#8230;</p>



<h3>Installation of Oracle 26ai Client</h3>



<p>On the lab, I will use the VM called bastion to act as the client. The bastion has already an Oracle 19c Client installed. I&#8217;m going to installed new Oracle 26ai Client on it.</p>



<p>First we need to download the client version, which can be done from the following website:</p>



<p><a href="https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html">https://www.oracle.com/database/technologies/oracle26ai-linux-downloads.html</a></p>



<p>I will install Oracle 26ai Client version in /opt/oracle.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4]">
[root@bastion oracle]# pwd
/opt/oracle

[root@bastion oracle]# ls -ld client*
drwxr-xr-x. 52 oracle oinstall 4096 Jun  6  2024 client19c
drwxr-xr-x. 47 oracle oinstall 4096 Nov 11  2025 client_21c
[root@bastion oracle]#
</pre>
</br>




<p>I will first unzip the downloaded oracle zip file.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4]">
[oracle@bastion oracle]$ pwd
/opt/oracle

[oracle@bastion oracle]$ unzip -q LINUX.X64_2326100_client.zip
</pre>
</br>



<p>I will then rename the client installation directory:</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,6,9]">
[oracle@bastion oracle]$ ls -ld client*
drwxr-xr-x.  5 oracle oinstall   90 Jan 17 13:59 client
drwxr-xr-x. 52 oracle oinstall 4096 Jun  6  2024 client19c
drwxr-xr-x. 47 oracle oinstall 4096 Nov 11  2025 client_21c

[oracle@bastion oracle]$ mv client client26ai
[oracle@bastion oracle]$

[oracle@bastion oracle]$ ls -ld client*
drwxr-xr-x. 52 oracle oinstall 4096 Jun  6  2024 client19c
drwxr-xr-x. 47 oracle oinstall 4096 Nov 11  2025 client_21c
drwxr-xr-x.  5 oracle oinstall   90 Jan 17 13:59 client26ai
[oracle@bastion oracle]$
</pre>
</br>



<p>I will prepare the response file for the command line installation.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,3,5]">
[oracle@bastion client26ai]$ cp -p response/client_install.rsp response/client_install_custom.rsp

[oracle@bastion client26ai]$ vi response/client_install_custom.rsp

[oracle@bastion client26ai]$ diff response/client_install.rsp response/client_install_custom.rsp
22c22
 UNIX_GROUP_NAME=oinstall
26c26
 INVENTORY_LOCATION=/opt/oracle/oraInventory
30c30
 ORACLE_HOME=/opt/oracle/client26ai
34c34
 ORACLE_BASE=/opt/oracle
48c48
 oracle.install.client.installType=Administrator
[oracle@bastion client26ai]$
</pre>
</br>



<p>And I will run the Oracle 26ai Client installation.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4,12]">
[oracle@bastion client26ai]$ pwd
/opt/oracle/client26ai

[oracle@bastion client26ai]$ ls -ltrh
total 24K
-rwxrwx---.  1 oracle oinstall  500 Feb  6  2013 welcome.html
-rwxr-xr-x.  1 oracle oinstall 8.7K Jan 17 12:38 runInstaller
drwxr-xr-x.  4 oracle oinstall 4.0K Jan 17 12:38 install
drwxr-xr-x. 15 oracle oinstall 4.0K Jan 17 13:37 stage
drwxr-xr-x.  2 oracle oinstall   82 May 21 16:13 response

[oracle@bastion client26ai]$ ./runInstaller -silent -responseFile /opt/oracle/client26ai/response/client_install_custom.rsp
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 415 MB.   Actual 5025 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4095 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2026-05-21_04-16-17PM. Please wait ... [WARNING] [INS-32016] The selected Oracle home contains directories or files.
   ACTION: To start with an empty Oracle home, either remove its contents or specify a different location.
*********************************************
Package: compat-openssl10-1.0.2 (x86_64): This is a prerequisite condition to test whether the package "compat-openssl10-1.0.2 (x86_64)" is available on the system.
Severity: IGNORABLE
Overall status: VERIFICATION_FAILED
Error message: PRVF-7532 : Package "compat-openssl10(x86_64)-1.0.2" is missing on node "bastion"
Cause:  A required package is either not installed or, if the package is a kernel module, is not loaded on the specified node.
Action:  Ensure that the required package is installed and available.
-----------------------------------------------
[WARNING] [INS-13014] Target environment does not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /opt/oraInventory/logs/installActions2026-05-21_04-16-17PM.log.
   ACTION: Identify the list of failed prerequisite checks from the log: /opt/oraInventory/logs/installActions2026-05-21_04-16-17PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
The response file for this session can be found at:
 /opt/oracle/client26ai/install/response/client_2026-05-21_04-16-17PM.rsp

You can find the log of this install session at:
 /opt/oraInventory/logs/installActions2026-05-21_04-16-17PM.log

The installation of Oracle Client 26ai was successful.
Please check '/opt/oraInventory/logs/silentInstall2026-05-21_04-16-17PM.log' for more details.
Successfully Setup Software with warning(s).
[INS-10115] All configuration tools were previously ran successfully, no further configuration is required.

[oracle@bastion client26ai]$
</pre>
</br>



<p>And the Oracle 26ai Client is now installed.</p>



<h3>Prepare target database</h3>



<p>I will create a user on the target lab PDB, named TESTZ_TMR_003I, in order to establish sqlplus connection and test the EXPIRE_TIME configuration.</p>



<p>I will create a user test01 and grant the connect permissions.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4,16,31,35,39]">
[oracle@svl-oat ~]$ echo $ORACLE_SID
CDB001I

[oracle@svl-oat ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu May 21 14:30:39 2026
Version 19.23.0.0.0

Copyright (c) 1982, 2023, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&gt; show pdbs

    CON_ID CON_NAME           OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
     2 PDB$SEED           READ ONLY  NO
     3 TESTZ_APP_006I         READ WRITE NO
     4 RCLON_TMR_003I         MOUNTED
     5 RCLON_TMR_002I         MOUNTED
     6 RCLON_TMR_001I         MOUNTED
     7 CLONZ_TMR_002I         MOUNTED
     8 TESTZ_TMR_003I         READ WRITE NO
    10 TESTZ_APP_004I         READ WRITE NO
    11 CLONZ_APP_001I         READ WRITE NO
    12 RCLON_APP_003I         READ WRITE NO

SQL&gt; alter session set container=TESTZ_TMR_003I;

Session altered.

SQL&gt; create user test01 identified by "test_expire";

User created.

SQL&gt; grant connect to test01;

Grant succeeded.

SQL&gt;
</pre>
</br>



<h3>Test connection with Oracle 26ai Client</h3>



<p>I will first set the ORACLE_HOME variable on the appropriate client directory.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4,6]">
[oracle@bastion client26ai]$ echo $ORACLE_HOME
/opt/oracle/client19c

[oracle@bastion client26ai]$ export ORACLE_HOME=/opt/oracle/client26ai

[oracle@bastion client26ai]$ echo $ORACLE_HOME
/opt/oracle/client26ai
[oracle@bastion client26ai]$
</pre>
</br>



<p>I will update the PATH variable to get tnsping and sqlplus binary from the appropriate Oracle 26ai Client.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4,6]">
[oracle@bastion client26ai]$ echo $PATH
/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/oracle/client19c/bin:/opt/oracle/sqlcl-24.1.0.087.0929//bin

[oracle@bastion client26ai]$ export PATH=/opt/oracle/client26ai/bin

[oracle@bastion client26ai]$ echo $PATH
/opt/oracle/client26ai/bin
[oracle@bastion client26ai]$
</pre>
</br>



<p>I will check that the appropriate tnsping and sqlplus is taken.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,4]">
[oracle@bastion client26ai]$ which sqlplus
/opt/oracle/client26ai/bin/sqlplus

[oracle@bastion client26ai]$ which tnsping
/opt/oracle/client26ai/bin/tnsping
</pre>
</br>



<p>I checked that the connection to target PDB is working.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion ~]$ tnsping svl-oat:1521/testz_tmr_003i.db.jewlab.oraclevcn.com

TNS Ping Utility for Linux: Version 23.26.1.0.0 - Production on 21-MAY-2026 16:28:56

Copyright (c) 1997, 2026, Oracle.  All rights reserved.

Used parameter files:
/opt/oracle/client19c/network/admin/sqlnet.ora

Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=testz_tmr_003i.db.jewlab.oraclevcn.com))(ADDRESS=(PROTOCOL=tcp)(HOST=X.X.1.135)(PORT=1521)))
OK (0 msec)
[oracle@bastion ~]$
</pre>
</br>



<p>The TNS_ADMIN used is from the 19c Oracle client directory, which is absolutely not a problem.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion ~]$ echo $TNS_ADMIN
/opt/oracle/client19c/network/admin
[oracle@bastion ~]$
</pre>
</br>



<h3>Test sqlplus connection with Oracle 26ai Client</h3>



<p>As I can see on my client side, I do not have any sqlplus connection running right now.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[opc@bastion ~]$ ss -nop | grep 1521
[opc@bastion ~]$
</pre>
</br>



<p> I will generate a sqlplus connection.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion client26ai]$ sqlplus test01/test_expire@svl-oat:1521/testz_tmr_003i.db.jewlab.oraclevcn.com

SQL*Plus: Release 23.26.1.0.0 - Production on Thu May 21 16:34:23 2026
Version 23.26.1.0.0

Copyright (c) 1982, 2025, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&gt;
</pre>
</br>



<p>And I can see that I have got a sqlplus connection with no timer/keepalive.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[opc@bastion ~]$ ss -nop | grep 1521
tcp   ESTAB  0      0   X.X.0.89:51404    X.X.1.135:1521
[opc@bastion ~]$
</pre>
</br>



<p>I will now configure Oracle Dead Connection Detection with SQLNET.EXPIRE_TIME parameter set in the client sqlnet.ora with a value of 1 minute.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,3,6,8]">
[oracle@bastion ~]$ cd $TNS_ADMIN

[oracle@bastion admin]$ /usr/bin/grep -i expire sqlnet.ora
[oracle@bastion admin]$ 

[oracle@bastion admin]$ /usr/bin/vi sqlnet.ora

[oracle@bastion admin]$ /usr/bin/grep -i expire sqlnet.ora
SQLNET.EXPIRE_TIME=1
[oracle@bastion admin]$
</pre>
</br>



<p>I will run a new sqlplus connection.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion admin]$ sqlplus test01/test_expire@svl-oat:1521/testz_tmr_003i.db.jewlab.oraclevcn.com

SQL*Plus: Release 23.26.1.0.0 - Production on Thu May 21 16:41:06 2026
Version 23.26.1.0.0

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

Last Successful login time: Thu May 21 2026 16:34:23 +02:00

Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&gt;
</pre>
</br>



<p>I can now see that I have got a connection configured with a timer and keep alive remaining of 38s.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[opc@bastion ~]$ ss -nop | grep 1521
tcp   ESTAB  0      0     X.X.0.89:62868    X.X.1.135:1521   timer:(keepalive,38sec,0)
[opc@bastion ~]$
</pre>
</br>



<p>Let&#8217;s configure the EXPIRE_TIME with a value of 15 minutes.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,3]">
[oracle@bastion admin]$ /usr/bin/vi sqlnet.ora

[oracle@bastion admin]$ /usr/bin/grep -i expire sqlnet.ora
SQLNET.EXPIRE_TIME=15
</pre>
</br>



<p>I run a new sqlplus connection.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion admin]$ sqlplus test01/test_expire@svl-oat:1521/testz_tmr_003i.db.jewlab.oraclevcn.com

SQL*Plus: Release 23.26.1.0.0 - Production on Thu May 21 16:43:25 2026
Version 23.26.1.0.0

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

Last Successful login time: Thu May 21 2026 16:42:29 +02:00

Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&gt;
</pre>
</br>



<p>And I now have got a connection configured with a timer and keep alive remaining of 14min.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[opc@bastion ~]$ ss -nop | grep 1521
tcp   ESTAB  0      0     X.X.0.89:60630    X.X.1.135:1521   timer:(keepalive,14min,0)
[opc@bastion ~]$
</pre>
</br>



<p>So, all good Oracle 26ai Client is supporting Dead Connection Detection with SQLNET.EXPIRE_TIME parameter.</p>



<h3>Let&#8217;s test it with Oracle 19c Client</h3>



<p>We can easily confirm again that Oracle 19c Client does not support Dead Connection Detection on the client side.</p>



<p>Let&#8217;s move back to Oracle 19c Client home.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1,3]">
[oracle@bastion admin]$ export PATH=/opt/oracle/client19c/bin

[oracle@bastion admin]$ which sqlplus
/opt/oracle/client19c/bin/sqlplus
</pre>
</br>



<p>Run a sqlplus connection.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[oracle@bastion admin]$ sqlplus test01/test_expire@svl-oat:1521/testz_tmr_003i.db.jewlab.oraclevcn.com

SQL*Plus: Release 19.0.0.0.0 - Production on Thu May 21 16:48:09 2026
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Last Successful login time: Thu May 21 2026 16:46:07 +02:00

Connected to:
Oracle Database 19c EE High Perf Release 19.0.0.0.0 - Production
Version 19.23.0.0.0

SQL&gt;
</pre>
</br>




<p>And check connection configuration.</p>



<pre class="brush: sql; gutter: true; first-line: 1; highlight: [1]">
[opc@bastion ~]$ ss -nop | grep 1521
tcp   ESTAB      0      0    X.X.0.89:64078    X.X.1.135:1521
[opc@bastion ~]$
</pre>
</br>



<p>There is no timer/keepalive handled with Oracle 19c Client.</p>



<h3>To wrap up&#8230;</h3>



<p>Oracle Database 26ai Client is now supporting Dead Connection Detection on the client side. For our customer configuration this will help the client to check every X minutes (EXPIRE_TIME configured value) for Dead Connection. So if the CMAN and listener connections have already died and if for any reason the Network Load Balancer is still keeping the connection with the client, the client will close the connection after X minutes.</p>



<p></p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-database-26ai-client-and-sqlnet-expire_time/">Oracle Database 26ai Client and SQLNET.EXPIRE_TIME</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/oracle-database-26ai-client-and-sqlnet-expire_time/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Reduce downtime when refreshing your non-production databases using Multitenant</title>
		<link>https://www.dbi-services.com/blog/reduce-downtime-when-refreshing-your-non-production-databases-using-multitenant/</link>
					<comments>https://www.dbi-services.com/blog/reduce-downtime-when-refreshing-your-non-production-databases-using-multitenant/#respond</comments>
		
		<dc:creator><![CDATA[Jérôme Dubar]]></dc:creator>
		<pubDate>Thu, 21 May 2026 09:55:25 +0000</pubDate>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[create pluggable database]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[duplicate]]></category>
		<category><![CDATA[fast refresh]]></category>
		<category><![CDATA[fast refresh pdb]]></category>
		<category><![CDATA[minimize downtime]]></category>
		<category><![CDATA[multitenant]]></category>
		<category><![CDATA[qual]]></category>
		<category><![CDATA[refresh]]></category>
		<category><![CDATA[test]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44737</guid>

					<description><![CDATA[<p>Introduction You probably refresh your non-production Oracle databases with production data from time to time or on a regular basis. Without Multitenant, the most common procedure to do this refresh is a DUPLICATE FROM BACKUP with RMAN. The drawback is the unavailability of the database being refreshed during the DUPLICATE. You first need to remove [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/reduce-downtime-when-refreshing-your-non-production-databases-using-multitenant/">Reduce downtime when refreshing your non-production databases using Multitenant</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-introduction">Introduction</h2>



<p>You probably refresh your non-production Oracle databases with production data from time to time or on a regular basis. Without Multitenant, the most common procedure to do this refresh is a DUPLICATE FROM BACKUP with RMAN. The drawback is the unavailability of the database being refreshed during the DUPLICATE. You first need to remove the old version of the database, then start the DUPLICATE and wait until it&#8217;s finished. If you have Enterprise Edition and enough CPU, you can lower the time needed for the refresh by allocating a sufficient number of channels. But with a small number of CPU (which is normal for a non-production server), or eventually with Standard Edition (single channel RMAN operations only), a multi-TB database refresh can take several hours to complete. And if it fails for some reasons, you need to retry the refresh, extending even more the downtime.</p>



<p>Multitenant brought new possibilities for refreshing a database, and my favorite one is a CREATE PLUGGABLE DATABASE from a database link (DB link). It&#8217;s dead easy compared to a DUPLICATE FROM BACKUP on a non-CDB database. And you can lower the downtime to the very minimum. Here is how I did this for several projects.</p>



<h2 class="wp-block-heading" id="h-how-to-lower-the-downtime-to-the-minimum-when-refreshing-a-non-production-pdb">How to lower the downtime to the minimum when refreshing a non-production PDB?</h2>



<p>You probably know that one of the advantage of a pluggable database is the easiness of changing its name. You just need to stop the PDB, rename it, and restart it. You can then use this technique to refresh a PDB under a temporary name and let the actual PDB available during the refresh. Once the refresh is finished, drop or rename the actual PDB, and rename the newest one to its target name. Even if your refresh takes hours, your downtime is limited to a couple of seconds/minutes.</p>



<h2 class="wp-block-heading" id="h-step-1-add-an-additional-grant-for-source-pdb-s-administrator">Step 1: add an additional grant for source PDB&#8217;s administrator</h2>



<p>The PDB administrator on the source database must have the CREATE PLUGGABLE DATABASE privilege:</p>



<pre class="wp-block-code"><code>ssh oracle@p01-srv-ora
. oraenv &lt;&lt;&lt; P19PMT
sqlplus / as sysdba
Alter session set container=P19_ERP;
grant create pluggable database to SYSERP;
exit</code></pre>



<h2 class="wp-block-heading" id="h-step-2-add-a-tns-entry-on-the-target-server">Step 2: add a TNS entry on the target server</h2>



<p>The target server must have a TNS entry to the source PDB (production). If your source PDB and its container are protected by a Data Guard configuration, dont&#8217;t forget to add both addresses:</p>



<pre class="wp-block-code"><code>ssh root@t01-srv-ora
su – oracle
. oraenv &lt;&lt;&lt; D19PMT
vi $ORACLE_HOME/network/admin/tnsnames.ora
…
P19_ERP =
(DESCRIPTION =
   (LOAD_BALANCE = OFF)
   (FAILOVER = ON)
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = p01-srv-ora)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = p02-srv-ora)(PORT = 1521))
   )
   (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = P19_ERP)
   )
)

tnsping P19_ERP
…
</code></pre>



<h2 class="wp-block-heading" id="h-step-3-create-a-db-link-on-the-target-container">Step 3: create a DB link on the target container</h2>



<p>A DB link is required on the target container:</p>



<pre class="wp-block-code"><code>ssh root@t01-srv-ora
su – oracle
. oraenv &lt;&lt;&lt; D19PMT
sqlplus / as sysdba
CREATE DATABASE LINK P19_ERP CONNECT TO SYSERP IDENTIFIED BY "*************"  USING 'P19_ERP';

select count(*) from dual@P19_ERP;
  COUNT(*)
----------
         1
exit</code></pre>



<h2 class="wp-block-heading" id="h-step-4-prepare-the-scripts-for-the-refresh">Step 4: prepare the scripts for the refresh</h2>



<p>Basically, refresh will have 5 main tasks:</p>



<ul class="wp-block-list">
<li>create a new PDB with a temporary name _NEW on the target container from the source PDB</li>



<li>start the new PDB for its correct registration in the container</li>



<li>run an optional script for modifying production data (masking, disabling tasks, …)</li>



<li>stop and rename the current PDB to _OLD, then start it again</li>



<li>stop and rename the new PDB to its target name and start it again</li>
</ul>



<p>Task 2 is needed because you cannot rename a PDB immediately after creation. You first need to open it, then close it for being able to change its name.</p>



<p>Let&#8217;s create 2 scripts on the target server, one shell script and one SQL script:</p>



<pre class="wp-block-code"><code>vi /home/oracle/scripts/refresh_D19_ERP.sh
#!/bin/bash
export ORACLE_SID=D19PMT
export REFRESH_LOG=/home/oracle/scripts/log/refresh_D19_ERP_`date +%d_%m_%Y-%H_%M_%S`.log
export ORACLE_HOME=`cat /etc/oratab | grep $ORACLE_SID | awk -F ':' '{print $2;}'`
date &gt;&gt; $REFRESH_LOG
$ORACLE_HOME/bin/sqlplus / as sysdba @/home/oracle/scripts/refresh_D19_ERP.sql &gt;&gt; $REFRESH_LOG
date &gt;&gt; $REFRESH_LOG
exit 0

vi /home/oracle/scripts/refresh_D19_ERP.sql
set timing on
show pdbs
alter pluggable database D19_ERP_OLD close immediate;
Drop pluggable database D19_ERP_OLD including datafiles;
show pdbs
create pluggable database D19_ERP_NEW from P19_ERP@P19_ERP ;
show pdbs
alter pluggable database D19_ERP_NEW open;
show pdbs
alter session set container=D19_ERP_NEW;
@/home/oracle/scripts/post_refresh_D19_ERP.sql 
alter session set container=CDB$ROOT;
alter pluggable database D19_ERP close immediate;
alter pluggable database D19_ERP rename global_name to D19_ERP_OLD;
alter pluggable database D19_ERP_OLD open;
show pdbs
alter pluggable database D19_ERP_NEW close immediate;
alter pluggable database D19_ERP_NEW rename global_name to D19_ERP;
Alter pluggable database D19_ERP open;
Alter pluggable database D19_ERP save state;
show pdbs
exit</code></pre>



<p>It does the job, although these are very basic scripts: further controls could be added to trap errors, manage services, and so on.</p>



<h2 class="wp-block-heading" id="h-step-5-schedule-the-refresh">Step 5: schedule the refresh</h2>



<p>Scheduling can be done through the crontab, for example every evening at 11.30PM:</p>



<pre class="wp-block-code"><code>crontab -l | grep D19_ERP | grep refresh
30 23 * * * sh /home/oracle/scripts/refresh_D19_ERP.sh
</code></pre>



<h2 class="wp-block-heading" id="h-conclusion">Conclusion</h2>



<p>This is definitely a smart solution as soon as you have enough space on disk to have 2 copies of the PDB. It&#8217;s quite reliable and ticks all the boxes where I deployed these scripts.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/reduce-downtime-when-refreshing-your-non-production-databases-using-multitenant/">Reduce downtime when refreshing your non-production databases using Multitenant</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/reduce-downtime-when-refreshing-your-non-production-databases-using-multitenant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OGG-08502 Path not found error from OGG Receiver Service</title>
		<link>https://www.dbi-services.com/blog/ogg-08502-path-not-found-error-from-ogg-receiver-service/</link>
					<comments>https://www.dbi-services.com/blog/ogg-08502-path-not-found-error-from-ogg-receiver-service/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Thu, 21 May 2026 06:39:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[distribution]]></category>
		<category><![CDATA[Error]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[ogg-08502]]></category>
		<category><![CDATA[path]]></category>
		<category><![CDATA[path not found]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[receiver]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44707</guid>

					<description><![CDATA[<p>Update: this bug seems to be corrected with the latest GoldenGate patch (23.26.2.0.1). If you face this error, try to patch your GoldenGate deployments. Recently, after a successful migration to GoldenGate 26ai, a customer complained that he was seeing a lot of the following error in the ggserr.log file of a GoldenGate deployment (I replaced [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/ogg-08502-path-not-found-error-from-ogg-receiver-service/">OGG-08502 Path not found error from OGG Receiver Service</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong><em>Update:</em></strong> this bug seems to be <strong>corrected</strong> with the latest GoldenGate patch (<code>23.26.2.0.1</code>). If you face this error, try to patch your GoldenGate deployments.</p>



<p>Recently, after a successful <strong>migration to GoldenGate 26ai</strong>, a customer complained that he was seeing a lot of the following <strong>error</strong> in the <code>ggserr.log</code> file of a GoldenGate deployment (I replaced the names for the purpose of this blog).</p>



<pre class="wp-block-code"><code>2026-05-18T14:32:35.948+0200  ERROR   OGG-08502. Oracle GoldenGate Receiver Service for Oracle:   Path path21 not found.</code></pre>



<p>More precisely, in that case, <code>path21</code> is a distribution path sending trail files from deployment <code>ogg_test_02</code> to <code>ogg_test_01</code>. And the error shown above appeared in the log file of the <code>ogg_test_01</code> deployment.</p>



<p>While this error did not seem to indicate any operational issue in the replication, after checking on multiple environments, I confirmed that it appears everywhere. So what is happening exactly ?</p>



<p>If you get this error and do not know where it comes from, <strong>log in to the web UI</strong> of the affected deployment, and go to the <strong><em>Receiver Service Paths</em></strong> tab. You should see a <strong>list of the distribution paths that are connecting to your deployments</strong>. The example below shows the <code>path21</code> that is mentioned in the error.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="425" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-1024x425.png" alt="" class="wp-image-44708" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-1024x425.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-300x124.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-768x319.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-1536x637.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_ogg08502_bug_webui-2048x850.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-how-to-reproduce-the-error"><strong>How to reproduce the error ?</strong></h2>



<p>If you click on this path&#8230; Nothing happens ! And by &#8220;nothing&#8221;, I mean &#8220;nothing abnormal&#8221;. In fact, the statistics are properly displayed (see below), and there is <strong>no error shown</strong> to the user. However, if you look at your <code>ggserr.log</code> file you will see that <strong>the error given above appears</strong>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="461" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-1024x461.png" alt="" class="wp-image-44709" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-1024x461.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-300x135.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-768x346.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-1536x692.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/Screenshot-2026-05-18-at-14.51.01-2048x923.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>At first glance, this might not seem like a huge issue, because if you don&#8217;t click on the receiver path, you will not get the error. However, in the log file of the customer, <strong>the error appeared regularly</strong>. Every minute, to be precise.</p>



<h2 class="wp-block-heading" id="h-why-do-i-get-this-error-even-when-i-m-not-accessing-the-web-ui"><strong>Why do I get this error even when I&#8217;m not accessing the web UI ?</strong></h2>



<p>Luckily, when debugging this issue, I started by putting the target in a <strong>blackout in the Oracle Enterprise Manager</strong>. To my surprise, the <strong>error was gone</strong> during the blackout and reappeared right after.</p>



<p>In this case, the <strong><a href="https://www.dbi-services.com/blog/install-and-configure-oem-plug-in-for-goldengate/" target="_blank" rel="noreferrer noopener">Enterprise Manager Plug-in for Oracle GoldenGate</a></strong> is monitoring the status of the deployment every minute and <strong>generates the error</strong> in the process.</p>



<p>When looking at the targets in the OEM, there is no error. Again, <strong>no operational impact</strong>.</p>



<h2 class="wp-block-heading" id="h-does-it-depend-on-the-way-you-create-the-distribution-path"><strong>Does it depend on the way you create the distribution path ?</strong></h2>



<p>GoldenGate offers multiple ways of managing deployments : REST API, <code>adminclient</code>, or the web UI. Unfortunately, some bugs (and some features&#8230;) mean that you should avoid managing some objects with some of these tools (read <a href="https://www.dbi-services.com/blog/overcome-goldengate-26ai-bug-on-custom-profiles/" target="_blank" rel="noreferrer noopener">why you shouldn&#8217;t create profiles through the <code>adminclient</code></a>, for instance).</p>



<p>In this specific case, <strong>all distribution path creation methods lead to the same error</strong> in the log file. It doesn&#8217;t matter whether you create the distribution path with the <code>adminclient</code>, the REST API or the web UI. They will all lead to this error.</p>



<h2 class="wp-block-heading" id="h-advanced-what-s-happening-exactly"><strong>Advanced &#8211; What&#8217;s happening exactly ?</strong></h2>



<p>Let&#8217;s dig a bit to see what is happening behind the scenes. By looking at the <code>restapi.log</code> file (read my blog on <a href="https://www.dbi-services.com/blog/querying-goldengate-rest-api-log-efficiently/" target="_blank" rel="noreferrer noopener">how to analyze REST API logs efficiently</a>), we can see the full error:</p>



<pre class="wp-block-code"><code>2026-05-18 09:08:58.402+0000 ERROR|RestAPI.recvsrvr | Request #9: {
     "context": {
         "httpContextKey": 140097141801744,
         "verbId": 2,
         "verb": "GET",
         "originalVerb": "GET",
         "uri": "/services/v2/targets/path21",
         "protocol": "http",
         "headers": {
             ...
         },
         "host": "vmogg",
         "securityEnabled": false,
         "authorization": {
             "authUserName": "ogg",
             "authUserRole": "Security",
             "authMode": "Cookie"
         },
         "requestId": 8,
         "uriTemplate": "/services/{version}/targets/{path}",
         "catalogUriTemplate": "/services/{version}/metadata-catalog/path"
     },
     "isScaRequest": true,
     "content": null,
     "parameters": {
         "uri": {
             "path": "path21",
             "version": "v2"
         },
         "query": {
             "WindowRef": "%2Fservices%2Fv2%2Fcontent%2F%23%2FrecvsrvrPaths%2Fpath21%2FpathNetworkStats"
         }
     }
 }
 Response: {
     "context": {
         ...
     },
     "isScaResponse": true,
     "content": {
         "$schema": "api:standardResponse",
         "links": &#091;
             {
                 "rel": "canonical",
                 "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets/path21",
                 "mediaType": "application/json"
             },
             {
                 "rel": "self",
                 "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets/path21",
                 "mediaType": "application/json"
             }
         ],
         "messages": &#091;
             {
                 "$schema": "ogg:message",
                 "title": "Path path21 not found",
                 "code": "OGG-08502",
                 "severity": "ERROR",
                 "issued": "2026-05-18T09:08:58Z",
                 "type": "https://www.rfc-editor.org/rfc/rfc9110.html#name-status-codes"
             }
         ]
     }
 }</code></pre>



<p>The issue comes from the following endpoint : <code>/services/v2/targets/path21</code>. It is described in the documentation under <a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-targets-path-get.html" target="_blank" rel="noreferrer noopener">Retrieve an existing Oracle GoldenGate Collector Path</a>. But looking at another endpoint described in <a href="https://docs.oracle.com/en/database/goldengate/core/26/oggra/op-services-version-targets-get.html" target="_blank" rel="noreferrer noopener">Get a list of distribution paths</a>, we get the following response:</p>



<pre class="wp-block-code"><code>{
    "$schema": "api:standardResponse",
    "links": &#091;
        {
            "rel": "canonical",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets",
            "mediaType": "text/html"
        },
        {
            "rel": "self",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets",
            "mediaType": "text/html"
        },
        {
            "rel": "describedby",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/metadata-catalog/targets",
            "mediaType": "application/schema+json"
        }
    ],
    "messages": &#091;],
    "response": {
        "$schema": "ogg:collection",
        "items": &#091;
            {
                "links": &#091;
                    {
                        "rel": "parent",
                        "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets",
                        "mediaType": "application/json"
                    },
                    {
                        "rel": "canonical",
                        "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets/path21_ogg26dist2_7811",
                        "mediaType": "application/json"
                    }
                ],
                "$schema": "ogg:collectionItem",
                "name": "path21",
                "status": "running",
                "targetInitiated": false
            }
        ]
    }
}</code></pre>



<p>Here, we see that the endpoint associated with the <code>path21</code> object is not <code>recvsrvr/v2/targets/path21</code> but <code>recvsrvr/v2/targets/path21_ogg26dist2_7811</code>. And looking at this second endpoint, we do not get an error.</p>



<pre class="wp-block-code"><code>{
    "$schema": "api:standardResponse",
    "links": &#091;
        {
            "rel": "canonical",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets/path21_ogg26dist2_7811",
            "mediaType": "text/html"
        },
        {
            "rel": "self",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/targets/path21_ogg26dist2_7811",
            "mediaType": "text/html"
        },
        {
            "rel": "describedby",
            "href": "https://vmogg/services/ogg_test_01/recvsrvr/v2/metadata-catalog/path",
            "mediaType": "application/schema+json"
        }
    ],
    "messages": &#091;],
    "response": {
        "name": "path21",
        "status": "running",
        "$schema": "ogg:distPath",
        "source": {
            "uri": "trail://localhost:7811/services/v2/sources?trail=pdb2/bb"
        },
        "target": {
            "$schema": "ogg:distPathEndpoint",
            "uri": "ws://vmogg/services/v2/targets?trail=pdb2/bb"
        },
        "options": {
            "network": {
                "appOptions": {
                    "appFlushBytes": 27985,
                    "appFlushSecs": 1
                },
                "socketOptions": {
                    "tcpOptions": {
                        "ipDscp": "DEFAULT",
                        "ipTos": "DEFAULT",
                        "tcpNoDelay": false,
                        "tcpQuickAck": true,
                        "tcpCork": false,
                        "tcpSndBuf": 16384,
                        "tcpRcvBuf": 131072
                    }
                }
            }
        }
    }
}</code></pre>



<p>The problem is that it was never decided for <code>path21</code> to be referred to as <code>path21_ogg26dist2_7811</code> internally. And it looks like GoldenGate does not know about it either&#8230; So until the bug is corrected, you will have to filter this <code>OGG-08502 Path not found</code> error out of the <code>ggserr.log</code> file if you use it for monitoring.</p>



<p></p>
<p>L’article <a href="https://www.dbi-services.com/blog/ogg-08502-path-not-found-error-from-ogg-receiver-service/">OGG-08502 Path not found error from OGG Receiver Service</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-08502-path-not-found-error-from-ogg-receiver-service/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Install and configure OEM plug-in for GoldenGate</title>
		<link>https://www.dbi-services.com/blog/install-and-configure-oem-plug-in-for-goldengate/</link>
					<comments>https://www.dbi-services.com/blog/install-and-configure-oem-plug-in-for-goldengate/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Mon, 18 May 2026 06:30:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[13c]]></category>
		<category><![CDATA[19c]]></category>
		<category><![CDATA[23ai]]></category>
		<category><![CDATA[24ai]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[configure]]></category>
		<category><![CDATA[enterprise manager]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[monitor]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[promote]]></category>
		<category><![CDATA[target]]></category>
		<category><![CDATA[update]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44473</guid>

					<description><![CDATA[<p>If you are licensed for the GoldenGate Management Pack, using the Enterprise Manager plug-in for GoldenGate improves monitoring and management of your deployments. And after migrating to the Microservices Architecture, you should definitely update your plug-in and rediscover all targets. Let&#8217;s see how to do all that here. In this blog, I will use the [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/install-and-configure-oem-plug-in-for-goldengate/">Install and configure OEM plug-in for GoldenGate</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>If you are licensed for the GoldenGate Management Pack, using the Enterprise Manager plug-in for GoldenGate improves monitoring and management of your deployments. And after migrating to the Microservices Architecture, you should definitely update your plug-in and rediscover all targets. Let&#8217;s see how to do all that here.</p>



<p>In this blog, I will use the latest version of the Enterprise Manager (24ai) and monitor GoldenGate 26ai deployments. The overall workflow is the same for other versions of the Enterprise Manager and GoldenGate, provided OGG is in the Microservices Architecture.</p>



<p>Here are the main steps to monitor GoldenGate targets from the Enterprise Manager:</p>



<ul class="wp-block-list">
<li><strong>Update the catalog</strong> in the Enterprise Manager</li>



<li><strong>Deploy</strong> the plug-in on the <strong>management server</strong></li>



<li><strong>Deploy</strong> the plug-in on the <strong>agent</strong></li>



<li>Configure the <strong>discovery module</strong></li>



<li><strong>Promote the new targets</strong></li>
</ul>



<div class="wp-block-yoast-seo-table-of-contents yoast-table-of-contents"><h2>Table of contents</h2><ul><li><a href="#h-checking-if-the-plugin-is-already-installed" data-level="2">Checking if the plugin is already installed</a></li><li><a href="#h-update-the-enterprise-manager-catalog" data-level="2">Update the Enterprise Manager catalog</a></li><li><a href="#h-deploy-the-goldengate-plug-in-on-the-management-server" data-level="2">Deploy the GoldenGate plug-in on the Management Server</a></li><li><a href="#h-deploy-the-plug-in-on-the-agent" data-level="2">Deploy the plug-in on the agent</a></li><li><a href="#h-configure-goldengate-monitoring-in-the-enterprise-manager" data-level="2">Configure GoldenGate monitoring in the Enterprise Manager</a></li></ul></div>



<h2 class="wp-block-heading" id="h-checking-if-the-plugin-is-already-installed">Checking if the plugin is already installed</h2>



<p>Before attempting to install the plug-in, make sure it is not already installed in your environment. To check this, go to <strong><em>Setup &gt; Extensibility &gt; Plug-ins</em></strong>, and expand the <em><strong>Middleware</strong></em> section. If you do not see any line named <em><strong>Oracle GoldenGate</strong></em>, it means the plug-in is not installed yet.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="592" height="491" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_noogg.png" alt="" class="wp-image-44477" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_noogg.png 592w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_noogg-300x249.png 300w" sizes="auto, (max-width: 592px) 100vw, 592px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-update-the-enterprise-manager-catalog">Update the Enterprise Manager catalog</h2>



<p>Since most OEM environments do not have access to the Oracle Support directly, we&#8217;ll download the plug-in in offline mode. To do so, go to the <em><strong>Setup &gt; Provisioning and Patching &gt; Offline Patching</strong></em> section.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="324" height="1024" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_tab_access-324x1024.png" alt="" class="wp-image-44476" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_tab_access-324x1024.png 324w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_tab_access-95x300.png 95w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_tab_access.png 365w" sizes="auto, (max-width: 324px) 100vw, 324px" /></figure>
</div>


<p>Once in the <strong><em>Offline Patching</em></strong> section, make sure <em><strong>Offline</strong></em> is selected for the connection and <strong><a href="https://updates.oracle.com/download/em_catalog.zip" target="_blank" rel="noreferrer noopener">download the catalog</a></strong> file as instructed from an environment with access to the Oracle support website. Transfer it to where you have access to the OEM UI, and <strong>upload it</strong>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="423" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode-1024x423.png" alt="" class="wp-image-44478" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode-1024x423.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode-300x124.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode-768x317.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode.png 1240w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Once the catalog is uploaded, you should see the following information message.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="404" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode_success-1024x404.png" alt="" class="wp-image-44479" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode_success-1024x404.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode_success-300x118.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode_success-768x303.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_offline_mode_success.png 1242w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Then, go to <em><strong>Setup &gt; Extensibility &gt; Self Update</strong></em> and click on <strong><em>Check Updates</em></strong>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="338" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-1024x338.png" alt="" class="wp-image-44483" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-1024x338.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-300x99.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-768x254.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-1536x507.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin-2048x676.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>You should see the following pop-up appear, with a link from where you will be able to download the OEM Self Update catalog file. For reference, the one I had when writing this blog was the following : <a href="https://updates.oracle.com/Orion/Download/download_patch/p9348486_112000_Generic.zip" target="_blank" rel="noreferrer noopener">https://updates.oracle.com/Orion/Download/download_patch/p9348486_112000_Generic.zip</a></p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="332" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_oem_check_updates-1024x332.png" alt="" class="wp-image-44482" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_oem_check_updates-1024x332.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_oem_check_updates-300x97.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_oem_check_updates-768x249.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/ogg_oem_check_updates.png 1400w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>As instructed, transfer this patch to the OMS host and <strong>import</strong> it with <code>emcli</code> and the <code>import_update_catalog</code> action. You can also import it from another managed host. It should take around twenty seconds to import everything.</p>



<pre class="wp-block-code"><code>oracle@oem24:~/ &#091;oem24] emcli import_update_catalog -file=/tmp/p9348486_112000_Generic.zip -omslocal
Processing catalog for Diagnostic Tools
Processing update: Diagnostic Tools - AHFFI 25.1.0.1.0 for Linux
Processing update: Diagnostic Tools - AHF 25.5.0.0.0 for HP

&#091;...]

Processing update: Plug-in - GoldenGate Plug-in now supports monitoring of Oracle GoldenGate Microservices, in addition to the Oracle GoldenGate Classic
Processing update: Plug-in - GoldenGate Plug-in now supports monitoring of Oracle GoldenGate Microservices, in addition to the Oracle GoldenGate Classic
Processing update: Plug-in - GoldenGate Plug-in now supports monitoring of Oracle GoldenGate Microservices, in addition to the Oracle GoldenGate Classic
Processing update: Plug-in - GoldenGate Plug-in now supports monitoring of GoldenGate Microservices Architecture, in addition to the GoldenGate Classic Architecture

&#091;...]

Successfully uploaded the Self Update catalog to Enterprise Manager. Use the Self Update Console to view and manage updates.
Time taken for import catalog is 17.289 seconds.</code></pre>



<h4 class="wp-block-heading" id="h-download-goldengate-plug-in">Download GoldenGate plug-in</h4>



<p>When this is done, go back to the <em><strong>Self Update</strong></em> page, click on the <strong><em>Plug-In</em></strong> section. You will see the different versions of GoldenGate that are available. When I&#8217;m writing this blog, the latest version of the plug-in is <code>13.5.2.0.0</code> (the latest patch released in January 2026, <code>13.5.2.0.6</code>, will be a topic for another blog). Click on the latest version and then on <em><strong>Download</strong></em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="339" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version-1024x339.png" alt="" class="wp-image-44484" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version-1024x339.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version-300x99.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version-768x254.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version-1536x508.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_plugin_ogg_version.png 1638w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>The following pop-up gives you the link from which you should download the plug-in update file. In my case, it was <a href="https://updates.oracle.com/Orion/Services/download/p34651099_112000_Generic.zip?aru=24962501&amp;patch_file=p34651099_112000_Generic.zip" target="_blank" rel="noreferrer noopener">https://updates.oracle.com/Orion/Services/download/p34651099_112000_Generic.zip?aru=24962501&amp;patch_file=p34651099_112000_Generic.zip</a>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="352" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download-1024x352.png" alt="" class="wp-image-44485" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download-1024x352.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download-300x103.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download-768x264.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download-1536x528.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_self_update_offline_download.png 1680w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Once the file is downloaded, import it in the same way as before with the catalog, but this time with the <code>emcli import_update</code> action.</p>



<pre class="wp-block-code"><code>oracle@oem24:~/ &#091;oem24] emcli import_update -omslocal -file=/tmp/p34651099_112000_Generic.zip
Processing update: Plug-in - GoldenGate Plug-in now supports monitoring of Oracle GoldenGate Microservices, in addition to the Oracle GoldenGate Classic
Successfully uploaded the update to Enterprise Manager. Use the Self Update Console to manage this update.</code></pre>



<p>Once this is done, go back to the <em><strong>Setup &gt; Extensibility &gt; Plug-in</strong></em> tab and expand the <strong><em>Middleware</em></strong> section. You should now see <em><strong>Oracle GoldenGate</strong></em>, and <code>13.5.2.0.0</code> as the downloaded version.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="393" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_downloaded-1024x393.png" alt="" class="wp-image-44486" style="width:600px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_downloaded-1024x393.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_downloaded-300x115.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_downloaded-768x294.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_downloaded.png 1080w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<h2 class="wp-block-heading" id="h-deploy-the-goldengate-plug-in-on-the-management-server">Deploy the GoldenGate plug-in on the Management Server</h2>



<p><strong>Warning</strong> : Deploying the plug-in on the management server will <strong>temporarily restart</strong> OMS components and briefly <strong>interrupt monitoring</strong> operations. To deploy the plug-in, you have two options:</p>



<ul class="wp-block-list">
<li>Deploying the plug-in from the web UI.</li>



<li>Deploying the plug-in from the CLI.</li>
</ul>



<h4 class="wp-block-heading" id="h-deploying-the-plug-in-from-the-web-ui">Deploying the plug-in from the web UI</h4>



<p>From the web UI, click on the <strong><em>Oracle GoldenGate</em></strong> plug-in, then on <strong><em>Deploy On</em></strong>, and deploy the plug-in on the <em><strong>Management Servers</strong></em>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="928" height="540" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms.png" alt="" class="wp-image-44487" style="width:600px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms.png 928w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms-300x175.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms-768x447.png 768w" sizes="auto, (max-width: 928px) 100vw, 928px" /></figure>
</div>


<p>Make sure the correct version of the plug-in is chosen (<code>13.5.2.0.0</code>), and click on <strong><em>Next</em></strong> to run the prerequisite checks.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="176" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-1024x176.png" alt="" class="wp-image-44488" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-1024x176.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-300x52.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-768x132.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-1536x265.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_2-2048x353.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Once the checks are successfully completed, click on <em><strong>Next</strong></em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="184" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-1024x184.png" alt="" class="wp-image-44490" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-1024x184.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-300x54.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-768x138.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-1536x276.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_prereq_2-2048x368.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>You should now <strong><em>select the repository credentials</em></strong> for the OEM. You should either use new credentials (if it&#8217;s a new environment) or use existing named credentials. Click on <em><strong>Next</strong></em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="335" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-1024x335.png" alt="" class="wp-image-44492" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-1024x335.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-300x98.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-768x251.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-1536x503.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_repo_sys_true-2048x670.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Once everything is done, click on <strong><em>Deploy</em></strong>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="299" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-1024x299.png" alt="" class="wp-image-44662" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-1024x299.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-300x88.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-768x225.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-1536x449.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_review-1-2048x599.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>As instructed, you can check the status of the deployment with the <code>emctl status oms -details</code> command.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="158" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-1024x158.png" alt="" class="wp-image-44494" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-1024x158.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-300x46.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-768x119.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-1536x237.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_confirmation-2048x316.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<pre class="wp-block-code"><code>oracle@oem24:~/ &#091;oem24] emctl status oms
Oracle Enterprise Manager 24ai Release 1
Copyright (c) 1996, 2024 Oracle Corporation.  All rights reserved.
WebTier is Up
Oracle Management Server is Down

This is due to the following plug-ins being deployed on the management server or undeployed from it:
----------------------------------------
Plugin name:    : Oracle GoldenGate
Version:        : 13.5.2.0.0
ID:             : oracle.fmw.gg
----------------------------------------</code></pre>



<h4 class="wp-block-heading" id="h-deploying-the-plug-in-from-the-cli">Deploying the plug-in from the CLI</h4>



<p>Alternatively, you can deploy the plug-in with the following command, using the <code>oracle.fmw.gg</code> ID for the plug-in and the latest <code>13.5.2.0.0</code> version.</p>



<pre class="wp-block-code"><code>emcli deploy_plugin_on_server -plugin="oracle.fmw.gg:13.5.2.0.0"</code></pre>



<p>Once the plug-in is <strong>deployed on the Management Server</strong>, you can check again in the web UI : the latest version should be in the <code>On Management Server</code> section.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="413" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_postdeploy-1024x413.png" alt="" class="wp-image-44495" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_postdeploy-1024x413.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_postdeploy-300x121.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_postdeploy-768x310.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ms_postdeploy.png 1338w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-deploy-the-plug-in-on-the-agent">Deploy the plug-in on the agent</h2>



<p>For each GoldenGate host where an OEM agent is running, deploy the plug-in. To do so, from the web UI, click on the <strong><em>Oracle GoldenGate</em></strong> plug-in, then on <em><strong>Deploy On</strong></em>, and select <em><strong>Management Agent</strong></em>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="691" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag-1024x691.png" alt="" class="wp-image-44618" style="width:800px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag-1024x691.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag-300x202.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag-768x518.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag.png 1150w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>There is currently a bug with the <em><strong>Supported Target Versions</strong></em>. No matter your patch level, you will not see the latest versions of GoldenGate. Do not worry about this yet. Just make sure <code>13.5.2.0.0</code> is selected.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="890" height="804" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_versions.png" alt="" class="wp-image-44619" style="width:600px" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_versions.png 890w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_versions-300x271.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_versions-768x694.png 768w" sizes="auto, (max-width: 890px) 100vw, 890px" /></figure>
</div>


<p>Then, select the agent on which you want to deploy the plug-in.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="333" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1-1024x333.png" alt="" class="wp-image-44621" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1-1024x333.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1-300x98.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1-768x250.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1-1536x499.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_select-1.png 1630w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Let the prerequisite checks run&#8230;</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="667" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq-1024x667.png" alt="" class="wp-image-44622" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq-1024x667.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq-300x195.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq-768x500.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq-1536x1001.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_prereq.png 1630w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>And once everything is ready, click on <em><strong>Deploy</strong></em>.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="669" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review-1024x669.png" alt="" class="wp-image-44623" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review-1024x669.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review-300x196.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review-768x502.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review-1536x1003.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_review.png 1626w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>You can check that everything is running properly with the <code>emcli get_plugin_deployment_status</code> command.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="200" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy-1024x200.png" alt="" class="wp-image-44624" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy-1024x200.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy-300x58.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy-768x150.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy-1536x299.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_deploy_ag_deploy.png 1632w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-configure-goldengate-monitoring-in-the-enterprise-manager">Configure GoldenGate monitoring in the Enterprise Manager</h2>



<p>Once the plug-in is correctly deployed on the OMS host and on the GoldenGate host agent, you can configure the module. I will only cover the configuration for the Microservices Architecture. Go to the <strong><em>Setup &gt; Add Target &gt; Configure Auto Discovery</em></strong> tab.</p>


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


<p>Choose the correct agent host, and click on <em><strong>Discovery Modules</strong></em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="402" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1-1024x402.png" alt="" class="wp-image-44631" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1-1024x402.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1-300x118.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1-768x301.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1-1536x603.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_setup_discovery-1.png 1610w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>Enable the <em><strong>Oracle GoldenGate Microservices</strong></em> module, click on it, and then on <em><strong>Edit Parameters</strong></em>.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="430" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-1024x430.png" alt="" class="wp-image-44632" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-1024x430.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-300x126.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-768x322.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-1536x645.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_discovery_modules-1-2048x859.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>If you deployed GoldenGate with a reverse proxy, <strong>set up the plug-in as such</strong>.</p>


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


<p>If you deployed GoldenGate with a port for each service, enter the <strong>service manager port</strong> (<code>7809</code>, by default).</p>



<p><strong>Warning</strong> : if your installation is <strong>secured with certificates</strong>, make sure to <strong>follow the instructions</strong> I gave in a blog to <a href="https://www.dbi-services.com/blog/em-90000-ssl-error-with-goldengate-targets-in-oem/" target="_blank" rel="noreferrer noopener">avoid EM-90000 errors when discovering new targets</a>.</p>



<p>Once this is done, just go back to the <em><strong>Configure Auto Discovery</strong></em> section, click on the correct host, and then click on <em><strong>Discover Now</strong></em>. Then, go back to the <em><strong>Configure Auto Discovery</strong></em> section. You should now see a greater number of targets in the <em><strong>Discovered targets</strong></em> section.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="177" height="137" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_discovered_targets.png" alt="" class="wp-image-44635" /></figure>
</div>


<p>If the number of targets did not increase, despite a successful discovery, check the blog linked above.</p>



<p>Click on the number of targets to jump to the <em><strong>Auto Discovery Results</strong></em> section. Select the newly discovered Service Manager target, and click on <em><strong>Promote</strong></em>. Once the target is promoted, you should see the new GoldenGate targets being monitored by the Enterprise Manager !</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="813" height="159" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_targets_final.png" alt="" class="wp-image-44634" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_targets_final.png 813w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_targets_final-300x59.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/05/oem_ogg_plugin_targets_final-768x150.png 768w" sizes="auto, (max-width: 813px) 100vw, 813px" /></figure>
</div><p>L’article <a href="https://www.dbi-services.com/blog/install-and-configure-oem-plug-in-for-goldengate/">Install and configure OEM plug-in for 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/install-and-configure-oem-plug-in-for-goldengate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Increase GoldenGate 26ai Log Retention</title>
		<link>https://www.dbi-services.com/blog/increase-goldengate-log-retention/</link>
					<comments>https://www.dbi-services.com/blog/increase-goldengate-log-retention/#respond</comments>
		
		<dc:creator><![CDATA[Julien Delattre]]></dc:creator>
		<pubDate>Tue, 12 May 2026 06:20:00 +0000</pubDate>
				<category><![CDATA[GoldenGate]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[19c]]></category>
		<category><![CDATA[23ai]]></category>
		<category><![CDATA[26ai]]></category>
		<category><![CDATA[increase]]></category>
		<category><![CDATA[log]]></category>
		<category><![CDATA[ogg]]></category>
		<category><![CDATA[retention]]></category>
		<category><![CDATA[size]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44355</guid>

					<description><![CDATA[<p>GoldenGate logs are a powerful source of information when debugging or analyzing your deployments. However, some of these logs have a rather low retention period in active deployments. They might then not even be useful for debugging if you send them to your dbi consultants or the Oracle support for analysis. So how can you [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/increase-goldengate-log-retention/">Increase GoldenGate 26ai Log Retention</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p><strong>GoldenGate logs</strong> are a powerful <strong>source of information</strong> when debugging or analyzing your deployments. However, some of these logs have a rather <strong>low retention</strong> period in active deployments. They might then not even be useful for debugging if you send them to your dbi consultants or the Oracle support for analysis. So <strong>how can you increase GoldenGate log retention</strong> ?</p>



<p>In a previous blog, I presented all the <a href="https://www.dbi-services.com/blog/goldengate-26ai-logs-explained/" target="_blank" rel="noreferrer noopener">log files available in GoldenGate</a>. Each of them has its <strong>own format and characteristics</strong>, but they have one common aspect: they can be customized.</p>



<p>Standard <strong>GoldenGate logging configuration files</strong> are located in the <code>$OGG_HOME/lib/utl/logging</code> directory.</p>



<pre class="wp-block-code"><code>&gt; ll $OGG_HOME/lib/utl/logging
-rw-r-----. 1 oracle oinstall  1066 Nov 17  2018 app-adminsrvr-debug.xml
-rw-r-----. 1 oracle oinstall  1076 Jan 10  2019 app-adminsrvr-events.xml
-rw-r-----. 1 oracle oinstall  1066 Nov 17  2018 app-distsrvr-debug.xml
-rw-r-----. 1 oracle oinstall  1040 Apr 17  2017 app-extract-events.xml
-rw-r-----. 1 oracle oinstall  1066 Nov 17  2018 app-pmsrvr-debug.xml
-rw-r-----. 1 oracle oinstall  1397 Apr  1  2018 app-pmsrvr-default.xml
-rw-r-----. 1 oracle oinstall  1066 Nov 17  2018 app-recvsrvr-debug.xml
-rw-r-----. 1 oracle oinstall  1048 Jan 22  2020 app-replicat-debug509.xml
-rw-r-----. 1 oracle oinstall  1040 Apr 17  2017 app-replicat-events.xml
-rw-r-----. 1 oracle oinstall  1066 Nov 17  2018 app-ServiceManager-debug.xml
-rw-r-----. 1 oracle oinstall  2459 Jan 17  2024 app-ServiceManager-services.xml
-rw-r-----. 1 oracle oinstall  1282 Dec 19 18:44 ogg-AIService.xml
-rw-r-----. 1 oracle oinstall  4946 May 14  2020 ogg-audit.xml
-rw-r-----. 1 oracle oinstall  1582 Jun 28  2023 ogg-ConfigService.xml
-rw-r-----. 1 oracle oinstall  4487 Jan 10  2019 ogg-ggserr.xml
-rw-r-----. 1 oracle oinstall 18162 Jun 26  2020 ogg-loggers.json
-rw-r-----. 1 oracle oinstall  1095 Sep 25  2019 ogg-loggers.xml
-rw-r-----. 1 oracle oinstall  2180 Sep 11  2024 sca-default.xml
-rw-r-----. 1 oracle oinstall  1211 Jan 10  2019 sca-restapi.xml
-rw-r-----. 1 oracle oinstall  1210 Jun  6  2022 sca-stdout.xml</code></pre>



<p>The process to modify logging properties of any GoldenGate log file is to <strong>copy one of these files in your deployment and update it</strong>. It means that you can have <strong>different logging properties between your deployments</strong>.</p>



<p><strong>Oracle GoldenGate Microservices</strong> uses a hierarchical logger framework with Log4j-style appenders, layouts, logger inheritance, and category namespaces. I will not dwell on all the configuration files in this blog, but let&#8217;s try to describe the most useful ones.</p>



<h2 class="wp-block-heading" id="h-sca-restapi-xml"><code>sca-restapi.xml</code></h2>



<pre class="wp-block-code"><code>&lt;?xml version="1.0"?&gt;
&lt;configuration&gt;

  &lt;!--
   /- ============================================================= -\
   !-   s c a - r e s t a p i . x m l                               -|
   !-                                                               -|
   !-   Logging control file for recording all REST API calls       -|
   !-   to an OGG deployment.                                       -|
   \- ============================================================= -/
  ! --&gt;

  &lt;appender  name="sca-restapi.log"  class="RollingFileAppender"&gt;
    &lt;level  value="info"/&gt;
    &lt;param   name="File"             value="restapi.log"/&gt;
    &lt;param   name="MaxFileSize"      value="10MB"/&gt;
    &lt;param   name="MaxBackupIndex"   value="9"/&gt;
    &lt;param   name="BufferedIO"       value="false"/&gt;
    &lt;param   name="Append"           value="true"/&gt;
    &lt;layout class="PatternLayout"&gt;
      &lt;param name="Pattern"          value="%d{%Y-%m-%d %H:%M:%S%z} %-5p|%-36.36c| %m%n"/&gt;
    &lt;/layout&gt;
  &lt;/appender&gt;

  &lt;!--
   !-   M i c r o s e r v i c e s   A r c h i t e c t u r e
  ! --&gt;
  &lt;logger          name="RestAPI"&gt;
    &lt;appender-ref  name="sca-restapi.log"/&gt;
    &lt;level        value="info"/&gt;
  &lt;/logger&gt;

&lt;/configuration&gt;</code></pre>



<p>The <code>sca-restapi.xml</code> file is the logging configuration file for the <code>restapi.log</code> file.</p>



<p>REST API logs are the <strong>most verbose</strong> across all GoldenGate log files. In <strong>production environments</strong> where the REST API is often called, you could easily go over the <strong>10 log files in a day</strong> or even less. If you have enough space, I would strongly <strong>recommend increasing the retention</strong> and/or the <strong>maximum size</strong> of a single log file. This way, you ensure that you keep enough logs for debugging and analysis.</p>



<p>To modify the retention, change <code>MaxFileSize</code> to set the maximum log file size and <code>MaxBackupIndex</code> to choose the number of files you want to keep (on top of the active log file).</p>



<p>Let&#8217;s copy the file in the deployment home (it could be any deployment, including the Service Manager home).</p>



<pre class="wp-block-code"><code>cd $OGG_DEPLOYMENT_HOME/etc/conf/logging
cp -p $OGG_HOME/lib/utl/logging/sca-restapi.xml .
vim sca-restapi.xml</code></pre>



<p>For instance, to have <strong>5 files of 50 MB</strong> each, edit the following lines:</p>



<pre class="wp-block-code"><code>    &lt;param&nbsp;&nbsp; name="MaxFileSize"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; value="50MB"/&gt;
&nbsp;&nbsp;&nbsp; &lt;param&nbsp;&nbsp; name="MaxBackupIndex"&nbsp;&nbsp; value="4"/&gt;</code></pre>



<p>Once this is done, just <strong>restart the administration service</strong>.</p>



<h2 class="wp-block-heading" id="h-what-about-the-other-log-files">What about the other log files ?</h2>



<p>If you want to increase the retention or the log file size of any other log file in GoldenGate, just use the following mapping and repeat the same process. If you want to edit the Service Manager logging properties, you should also restart it.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>If you want to modify the log retention for&#8230;</th><th>Copy and modify the following file from <code>$OGG_HOME/lib/utl/logging</code></th></tr></thead><tbody><tr><td>Most standard microservice logs, except <code>restapi.log</code> and <code>ER-events.log</code></td><td><code>sca-default.xml</code></td></tr><tr><td><code>ggserr.log</code></td><td><code>ogg-ggserr.xml</code></td></tr><tr><td><code>ER-events.log</code></td><td><code>app-extract-events.xml</code></td></tr><tr><td><code>restapi.log</code></td><td><code>sca-restapi.xml</code></td></tr></tbody></table></figure>



<p><strong>Warning:</strong> If you want to use the same configuration across all your deployments, you could modify the standard files in <code>$OGG_HOME/lib/utl/logging</code> and create links from the deployments to this file. However, make sure you do not lose these changes when patching out-of-place !</p>



<h2 class="wp-block-heading" id="h-can-i-increase-the-retention-to-more-than-10-files">Can I increase the retention to more than 10 files ?</h2>



<p>Yes, there is no problem having more than 10 log files. Just increase the <code>MaxBackupIndex</code> (9, by default) to the number of log files you want, minus 1. For 20 log files, set <code>MaxBackupIndex</code> to <code>19</code>.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/increase-goldengate-log-retention/">Increase GoldenGate 26ai Log Retention</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/increase-goldengate-log-retention/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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 loading="lazy" 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="auto, (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 loading="lazy" 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="auto, (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>AutoUpgrade powered easy download and installation of Oracle AI Database 26ai on Linux</title>
		<link>https://www.dbi-services.com/blog/autoupgrade-powered-easy-download-and-installation-of-oracle-ai-database-26ai-on-linux/</link>
					<comments>https://www.dbi-services.com/blog/autoupgrade-powered-easy-download-and-installation-of-oracle-ai-database-26ai-on-linux/#respond</comments>
		
		<dc:creator><![CDATA[Alain Klein]]></dc:creator>
		<pubDate>Fri, 01 May 2026 13:21:58 +0000</pubDate>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[autoupgrade]]></category>
		<category><![CDATA[patching]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=44159</guid>

					<description><![CDATA[<p>With latest versions of AutoUpgrade, downloading and installing Oracle AI Database 26ai on Linux x86 on-premise has become a very simple process. If you want to give a try to Oracle Database 26ai, building a test environment requires minimal effort as you will see in this short post. What we need: Steps to proceed: 1) [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/autoupgrade-powered-easy-download-and-installation-of-oracle-ai-database-26ai-on-linux/">AutoUpgrade powered easy download and installation of Oracle AI Database 26ai on Linux</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-with-latest-versions-of-autoupgrade-downloading-and-installing-oracle-ai-database-26ai-on-linux-x86-on-premise-has-become-a-very-simple-process-if-you-want-to-give-a-try-to-oracle-database-26ai-building-a-test-environment-requires-minimal-effort-as-you-will-see-in-this-short-post">With latest versions of AutoUpgrade, downloading and installing Oracle AI Database 26ai on Linux x86 on-premise has become a very simple process. If you want to give a try to Oracle Database 26ai, building a test environment requires minimal effort as you will see in this short post.</h2>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<p>What we need:</p>



<ul class="wp-block-list">
<li>Internet access</li>



<li>Oracle Support account</li>



<li>new installation of Oracle Linux 8 or 9, RHEL 8 or 9, SLES 15 with enough space for Oracle binaries</li>



<li>Java JDK 8 to JDK 11</li>



<li>latest version of AutoUpgrade</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>Steps to proceed:</p>



<ul class="wp-block-list">
<li>update the system if not already performed</li>



<li>install OpenJDK if java not yet installed on the system</li>



<li>install Oracle preinstall package for 26ai</li>



<li>create oracle base, inventory and home directories with relevant permissions</li>



<li>change to oracle user created during installation of preinstall package for 26ai</li>



<li>create AutoUpgrade home with some subdirectories</li>



<li>download latest AutoUgrade version</li>



<li>check version of AutoUpgrade</li>



<li>create AutoUpgrade configuration file for software download</li>



<li>configure AutoUpgrade keystore to enable access to Oracle Support</li>



<li>launch software download</li>



<li>create AutoUpgrade configuration file for Oracle Home creation</li>



<li>launch Oracle Home creation</li>



<li>check the newly installed Oracle AI Database 26ai environment</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading" id="h-1-update-the-system">1) Update the system</h5>



<pre class="wp-block-code"><code>sudo dnf update
</code></pre>



<h5 class="wp-block-heading" id="h-2-install-openjdk-if-java-not-yet-installed-on-the-system">2) Install OpenJDK if java not yet installed on the system</h5>



<pre class="wp-block-code"><code>sudo dnf install -y java-11-openjdk
</code></pre>



<h5 class="wp-block-heading" id="h-3-install-oracle-preinstall-package-for-26ai">3) Install Oracle preinstall package for 26ai</h5>



<pre class="wp-block-code"><code>sudo dnf install -y oracle-database-preinstall-23ai
</code></pre>



<h5 class="wp-block-heading" id="h-4-create-oracle-base-inventory-and-home-directories-with-relevant-permissions">4) Create oracle base, inventory and home directories with relevant permissions</h5>



<pre class="wp-block-code"><code>sudo mkdir -p /u01/app/oracle
sudo mkdir -p /u01/app/oraInventory
sudo mkdir -p /u01/app/oracle/product/23.26.2/dbhome_1
sudo chown -R oracle:oinstall /u01/app/oracle
sudo chown -R oracle:oinstall /u01/app/oraInventory
</code></pre>



<h5 class="wp-block-heading" id="h-5-change-to-oracle-user-created-during-installation-of-preinstall-package-for-26ai">5) Change to oracle user created during installation of preinstall package for 26ai</h5>



<pre class="wp-block-code"><code>sudo su - oracle
</code></pre>



<h5 class="wp-block-heading" id="h-6-create-autoupgrade-home-with-some-subdirectories">6) Create AutoUpgrade home with some subdirectories</h5>



<pre class="wp-block-code"><code>mkdir autoupgrade
mkdir autoupgrade/logs
mkdir autoupgrade/patches
mkdir autoupgrade/keystore
mkdir autoupgrade/etc
cd autoupgrade</code></pre>



<h5 class="wp-block-heading" id="h-7-download-latest-version-of-autoupgrade">7) Download latest version of AutoUpgrade</h5>



<pre class="wp-block-code"><code>wget -O /home/oracle/autoupgrade/autoupgrade.jar https://download.oracle.com/otn-pub/otn_software/autoupgrade.jar
</code></pre>



<h5 class="wp-block-heading" id="h-8-check-version-of-autoupgrade">8) Check version of AutoUpgrade</h5>



<pre class="wp-block-code"><code>java -jar autoupgrade.jar -version
</code></pre>



<h5 class="wp-block-heading" id="h-9-create-autoupgrade-configuration-file-for-software-download">9) Create AutoUpgrade configuration file for software download</h5>



<pre class="wp-block-code"><code>vi etc/au-download.cfg

global.global_log_dir=/home/oracle/autoupgrade/logs
global.keystore=/home/oracle/autoupgrade/keystore

dl.folder=/home/oracle/autoupgrade/patches
dl.patch=RU,OPATCH
dl.target_version=23
dl.platform=LINUX.X64</code></pre>



<h5 class="wp-block-heading" id="h-10-configure-autoupgrade-keystore-to-enable-access-to-oracle-support">10) Configure AutoUpgrade keystore to enable access to Oracle Support</h5>



<pre class="wp-block-code"><code>java -jar autoupgrade.jar -config etc/au-download.cfg -patch -load_password
Processing config file ...

Starting AutoUpgrade Patching Password Loader - Type help for available options
Creating new AutoUpgrade Patching keystore - Password required
Enter password:
Enter password again:
AutoUpgrade Patching keystore was successfully created

MOS&gt; add -user &lt;your-mos-account-name&gt;
Enter your secret/Password:
Re-enter your secret/Password:
MOS&gt; save
Convert the AutoUpgrade Patching keystore to auto-login &#091;YES|NO] ? YES
MOS&gt; exit

AutoUpgrade Patching Password Loader finished - Exiting AutoUpgrade Patching
</code></pre>



<h5 class="wp-block-heading" id="h-11-launch-software-download">11) Launch software download</h5>



<pre class="wp-block-code"><code>java -jar autoupgrade.jar -config etc/au-download.cfg -patch -mode download
AutoUpgrade Patching 26.3.260401 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded

Connected to MOS - Searching for specified patches

-----------------------------------------------------
Downloading files to /home/oracle/autoupgrade/patches
-----------------------------------------------------
DATABASE RELEASE UPDATE 23.26.2.0.0
    File: p39099680_230000_Linux-x86-64.zip \ 16%
...
</code></pre>



<p>After download has completed, we get the following output:</p>



<pre class="wp-block-code"><code>AutoUpgrade Patching 26.3.260401 launched with default internal options
Processing config file ...
Loading AutoUpgrade Patching keystore
AutoUpgrade Patching keystore is loaded

Connected to MOS - Searching for specified patches

-----------------------------------------------------
Downloading files to /home/oracle/autoupgrade/patches
-----------------------------------------------------
DATABASE RELEASE UPDATE 23.26.2.0.0
    File: p39099680_230000_Linux-x86-64.zip - VALIDATED

OPatch 12.2.0.1.51 for DB 23.0.0.0.0 (Apr 2026)
    File: p6880880_230000_Linux-x86-64.zip - VALIDATED
-----------------------------------------------------
</code></pre>



<p>At time of writing, 23.26.2 was just released and Data Pump Bundle Patch could not yet be downloaded for this Release Update.</p>



<h5 class="wp-block-heading" id="h-12-create-autoupgrade-configuration-file-for-oracle-home-creation">12) Create AutoUpgrade configuration file for Oracle Home creation</h5>



<pre class="wp-block-code"><code>vi etc/au-create-home.cfg

global.global_log_dir=/home/oracle/autoupgrade/logs

crh.folder=/home/oracle/autoupgrade/patches
crh.patch=RU,OPATCH
crh.target_version=23
crh.platform=LINUX.X64
crh.target_home=/u01/app/oracle/product/23.26.2/dbhome_1
crh.home_settings.edition=ee
crh.home_settings.oracle_base=/u01/app/oracle
crh.home_settings.inventory_location=/u01/app/oraInventory
crh.download=no</code></pre>



<h5 class="wp-block-heading" id="h-13-launch-oracle-home-creation">13) Launch Oracle Home creation</h5>



<pre class="wp-block-code"><code>java -jar autoupgrade.jar -config etc/au-create-home.cfg -patch -mode create_home
AutoUpgrade Patching 26.3.260401 launched with default internal options
Processing config file ...
+-----------------------------------------+
| Starting AutoUpgrade Patching execution |
+-----------------------------------------+
Type 'help' to list console commands
patch&gt;lsj -a
patch&gt; +----+-------------+-------+---------+-------+----------+-------+---------------------+
|Job#|      DB_NAME|  STAGE|OPERATION| STATUS|START_TIME|UPDATED|              MESSAGE|
+----+-------------+-------+---------+-------+----------+-------+---------------------+
| 100|create_home_1|EXTRACT|EXECUTING|RUNNING|  09:29:32|37s ago|Extracting gold image|
+----+-------------+-------+---------+-------+----------+-------+---------------------+
Total jobs 1

patch&gt; Job 100 completed
------------------- Final Summary --------------------
Number of databases            &#091; 1 ]

Jobs finished                  &#091;1]
Jobs failed                    &#091;0]
Jobs restored                  &#091;0]
Jobs pending                   &#091;0]

# Run the root.sh script as root for the following jobs:
For create_home_1 -&gt; /u01/app/oracle/product/23.26.2/dbhome_1/root.sh

# Run the orainstRoot.sh script as root for the following jobs:
For create_home_1 -&gt; /u01/app/oraInventory/orainstRoot.sh

Please check the summary report at:
/home/oracle/autoupgrade/logs/cfgtoollogs/patch/auto/status/status.html
/home/oracle/autoupgrade/logs/cfgtoollogs/patch/auto/status/status.log</code></pre>



<p>To complete the installation, we need to execute with root privileges the two scripts mentioned at the end of the output.</p>



<h5 class="wp-block-heading" id="h-14-check-the-newly-installed-oracle-ai-database-26ai-environment">14) Check the newly installed Oracle AI Database 26ai environment</h5>



<pre class="wp-block-code"><code>more /home/oracle/autoupgrade/logs/cfgtoollogs/patch/auto/status/status.log
==========================================
   AutoUpgrade Patching Summary Report
==========================================
&#091;Date]           Fri May 01 09:33:13 GMT 2026
&#091;Number of Jobs] 1
==========================================
&#091;Job ID] 100
==========================================
&#091;DB Name]                create_home_1
&#091;Version Before AutoUpgrade Patching] 23.0.0.0.0
&#091;Version After AutoUpgrade Patching]  23.26.2.0.0
------------------------------------------
&#091;Stage Name]    PENDING
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:29:32
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/pending
------------------------------------------
&#091;Stage Name]    PREACTIONS
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:29:32
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/preaction
------------------------------------------
&#091;Stage Name]    EXTRACT
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:29:32
&#091;Duration]      0:01:17
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/extract
------------------------------------------
&#091;Stage Name]    DBTOOLS
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:30:51
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/dbtools
------------------------------------------
&#091;Stage Name]    INSTALL
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:30:52
&#091;Duration]      0:02:20
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/install
------------------------------------------
&#091;Stage Name]    OH_PATCHING
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:33:13
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/opatch
------------------------------------------
&#091;Stage Name]    OPTIONS
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:33:13
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/options
------------------------------------------
&#091;Stage Name]    ROOTSH
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:33:13
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/rootsh
------------------------------------------
&#091;Stage Name]    DISPATCH
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:33:13
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/dispatch
------------------------------------------
&#091;Stage Name]    POSTACTIONS
&#091;Status]        SUCCESS
&#091;Start Time]    2026-05-01 09:33:13
&#091;Duration]      0:00:00
&#091;Log Directory] /home/oracle/autoupgrade/logs/create_home_1/100/postaction
------------------------------------------

sqlplus -V

SQL*Plus: Release 23.26.2.0.0 - Production
Version 23.26.2.0.0</code></pre>



<p>And that&#8217;s it.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>
<p>L’article <a href="https://www.dbi-services.com/blog/autoupgrade-powered-easy-download-and-installation-of-oracle-ai-database-26ai-on-linux/">AutoUpgrade powered easy download and installation of Oracle AI Database 26ai on Linux</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/autoupgrade-powered-easy-download-and-installation-of-oracle-ai-database-26ai-on-linux/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-06-02 06:52:35 by W3 Total Cache
-->