<?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>David Diab, auteur/autrice sur dbi Blog</title>
	<atom:link href="https://www.dbi-services.com/blog/author/david-diab/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbi-services.com/blog/author/david-diab/</link>
	<description></description>
	<lastBuildDate>Fri, 02 Oct 2026 08:13:47 +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>David Diab, auteur/autrice sur dbi Blog</title>
	<link>https://www.dbi-services.com/blog/author/david-diab/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Oracle Reports: REP-50125: An internal exception occurred</title>
		<link>https://www.dbi-services.com/blog/oracle-reports-rep-50125-an-internal-exception-occurred/</link>
					<comments>https://www.dbi-services.com/blog/oracle-reports-rep-50125-an-internal-exception-occurred/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Fri, 02 Oct 2026 08:13:45 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[Oracle Fusion Middleware]]></category>
		<category><![CDATA[Oracle Reports]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=47367</guid>

					<description><![CDATA[<p>A client contacted me after an operating system upgrade and the restart of an Oracle Fusion Middleware environment. The application servers were running. The ADF applications appeared healthy. Both Oracle Reports Server processes were also reported as running. Yet report generation failed. Even a simple request to display the Reports job list returned an error: [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-reports-rep-50125-an-internal-exception-occurred/">Oracle Reports: REP-50125: An internal exception occurred</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A client contacted me after an operating system upgrade and the restart of an <a href="https://www.oracle.com/middleware/" target="_blank" rel="noreferrer noopener">Oracle Fusion Middleware</a> environment. The application servers were running. The ADF applications appeared healthy. Both Oracle Reports Server processes were also reported as running.</p>



<p class="wp-block-paragraph">Yet report generation failed.</p>



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



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="701" height="401" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/image-8.png" alt="" class="wp-image-47369" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/image-8.png 701w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/image-8-300x172.png 300w" sizes="(max-width: 701px) 100vw, 701px" /></figure>



<p class="wp-block-paragraph">Even a simple request to display the Reports job list returned an error:</p>



<pre class="wp-block-code"><code>REP-50125: An internal exception occurred:
java.security.PrivilegedActionException:
javax.security.auth.login.LoginException:
java.lang.NoClassDefFoundError:
Could not initialize class
oracle.security.jps.service.policystore.info.BuiltInFunctionsHandler
</code></pre>



<p class="wp-block-paragraph">The investigation led somewhere else: a Reports Server JVM running with a maximum heap of only <strong>256 MiB</strong>, while the equivalent environment used <strong>1 GiB</strong>.</p>



<p class="wp-block-paragraph">Here is how we moved from a misleading symptom to an evidence-based diagnosis.</p>



<h2 id="h-separate-process-availability-from-application-health" class="wp-block-heading">Separate process availability from application health</h2>



<p class="wp-block-paragraph">The initial service check showed every component as running:</p>



<pre class="wp-block-code"><code>AdminServer             is running.
WLS_REPORTS             is running.
RptSvr_app-dev_1         is running.
RptSvr_app-dev_2         is running.</code></pre>



<p class="wp-block-paragraph">This established that the processes existed. It did not establish that they could authenticate requests, evaluate security policies, or execute reports.</p>



<p class="wp-block-paragraph">The failing <code>showjobs</code> request provided a more useful functional check. It showed that Reports could receive a request but failed while processing it.</p>



<p class="wp-block-paragraph">The first lesson is straightforward:</p>



<p class="wp-block-paragraph"><strong>A running process is an infrastructure observation, not an application health check.</strong></p>



<h2 id="h-find-the-first-exception-not-the-most-frequently-repeated-one" class="wp-block-heading">Find the first exception, not the most frequently repeated one</h2>



<p class="wp-block-paragraph">The browser displayed:</p>



<pre class="wp-block-code"><code>NoClassDefFoundError: Could not initialize class ...</code></pre>



<p class="wp-block-paragraph">The wording matters. A class that cannot initialize is not necessarily a missing class.</p>



<p class="wp-block-paragraph">I searched the Reports Server diagnostic logs for the first occurrence and the exceptions preceding it:</p>



<pre class="wp-block-code"><code>grep -n -B 30 -A 70 -E \
  'BuiltInFunctionsHandler|ExceptionInInitializerError|OutOfMemoryError|Caused by:' \
  rwserver_diagnostic.log</code></pre>



<p class="wp-block-paragraph">Earlier in the same process lifetime, the log contained:</p>



<pre class="wp-block-code"><code>ava.lang.OutOfMemoryError: GC overhead limit exceeded
...
oracle.security.jps.service.policystore.info.BuiltInFunctionsHandler.&lt;clinit&gt;</code></pre>



<p class="wp-block-paragraph">The sequence was now clear:</p>



<ul class="wp-block-list">
<li>The JVM encountered memory exhaustion during initialization of a security class.</li>



<li>That initialization failed.</li>



<li>Subsequent requests reported that the class could not initialize.</li>
</ul>



<p class="wp-block-paragraph">The security error was therefore a consequence of the earlier memory failure.</p>



<p class="wp-block-paragraph"><strong>The first exception explained the incident; the later exceptions described its persistent symptoms.</strong></p>



<h2 id="h-identify-the-jvm-that-actually-failed" class="wp-block-heading">Identify the JVM that actually failed</h2>



<p class="wp-block-paragraph">An Oracle Reports installation involves several processes with different responsibilities:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Component</strong></td><td><strong>Role</strong></td></tr><tr><td><code>WLS_REPORTS</code></td><td>Hosts the Reports web application</td></tr><tr><td><code>rwserver</code></td><td>Handles Reports Server requests and job management</td></tr><tr><td><code>rwEng</code></td><td>Executes report jobs</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Each can have its own JVM configuration.</p>



<p class="wp-block-paragraph">Increasing the heap of <code>WLS_REPORTS</code> would not necessarily help a failure occurring inside the standalone <code>rwserver</code> process.</p>



<p class="wp-block-paragraph">I first mapped the processes:</p>



<pre class="wp-block-code"><code>ps -ww -eo pid,user,rss,args |
  grep -E '&#091;b]in/rwserver|&#091;w]eblogic.Name=WLS_REPORTS|&#091;o]racle.reports.engine.RWEngine'</code></pre>



<p class="wp-block-paragraph">Then I checked which JVM library the affected native <code>rwserver</code> process had loaded:</p>



<pre class="wp-block-code"><code>grep 'libjvm.so' /proc/&lt;REPORTS_PID&gt;/maps</code></pre>



<p class="wp-block-paragraph">This revealed another useful detail: the JVM loaded from the Oracle home differed from the JDK referenced by <code>JAVA_HOME</code>.</p>



<p class="wp-block-paragraph">The Reports startup script populated <code>LD_LIBRARY_PATH</code> with the bundled JVM location.</p>



<p class="wp-block-paragraph">That distinction did not prove a Java compatibility problem. It established which JDK tools we should use and prevented us from diagnosing the wrong runtime.</p>



<p class="wp-block-paragraph"><strong>For a running process, inspect what is loaded not just what the shell environment suggests.</strong></p>



<h2 id="h-measure-the-heap-instead-of-inferring-it-from-available-ram" class="wp-block-heading">Measure the heap instead of inferring it from available RAM</h2>



<p class="wp-block-paragraph">The operating system reported more than <strong>20 GiB of available memory</strong>.</p>



<p class="wp-block-paragraph">That did not contradict the Java memory error. A JVM can exhaust its configured heap while the host still has substantial free RAM.</p>



<p class="wp-block-paragraph">Using the matching JDK, I inspected the effective JVM flags:</p>



<pre class="wp-block-code"><code>"$REPORTS_JDK/bin/jcmd" &lt;REPORTS_PID&gt; VM.flags</code></pre>



<p class="wp-block-paragraph">The relevant output was:</p>



<pre class="wp-block-code"><code>-XX:InitialHeapSize=268435456
-XX:MaxHeapSize=268435456</code></pre>



<p class="wp-block-paragraph">The maximum heap was <strong>256 MiB</strong>.</p>



<p class="wp-block-paragraph">Next, I sampled garbage collection statistics:</p>



<pre class="wp-block-code"><code>"$REPORTS_JDK/bin/jstat" -gcutil &lt;REPORTS_PID&gt; 1000 10</code></pre>



<p class="wp-block-paragraph">The affected process showed:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Metric</strong></td><td><strong>Observation</strong></td></tr><tr><td>Old generation occupancy</td><td>99.85%</td></tr><tr><td>Eden occupancy</td><td>Approximately 98%</td></tr><tr><td>Full GC count since startup</td><td>185</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">The Full GC counter did not increase during that short sample. However, the nearly full heap, accumulated collection activity, and recorded <code>OutOfMemoryError</code> together provided strong evidence of heap exhaustion.</p>



<p class="wp-block-paragraph">A single memory percentage would have been insufficient. The diagnosis came from combining the logs, effective configuration, and runtime measurements.</p>



<h2 id="h-compare-with-a-working-environment" class="wp-block-heading">Compare with a working environment</h2>



<p class="wp-block-paragraph">I inspected the environment inherited by the working process:</p>



<pre class="wp-block-code"><code>tr '\0' '\n' &lt; /proc/&lt;REPORTS_PID&gt;/environ |
  grep -E '^(REPORTS_JVM_OPTIONS|JAVA_TOOL_OPTIONS|_JAVA_OPTIONS)='</code></pre>



<p class="wp-block-paragraph">The reference environment contained:</p>



<pre class="wp-block-code"><code>REPORTS_JVM_OPTIONS= -Xmx1024M</code></pre>



<p class="wp-block-paragraph">Comparing the Reports environment scripts then revealed the missing lines in the affected domain’s <code>reports/bin/reports.sh</code>:</p>



<pre class="wp-block-code"><code>REPORTS_JVM_OPTIONS=" -Xmx1024M"
export REPORTS_JVM_OPTIONS</code></pre>



<h2 id="h-validate-the-correction" class="wp-block-heading">Validate the correction</h2>



<p class="wp-block-paragraph">The client aligned the Reports memory configuration with the reference environment and subsequently confirmed that report generation and application checks worked again.</p>



<p class="wp-block-paragraph">A separate question remained: why had the problem become visible after this particular operating system upgrade and restart?</p>



<p class="wp-block-paragraph">We did not have the previous process’s effective heap settings or a historical memory profile. We therefore could not prove whether the restart changed the inherited environment, whether memory demand had increased, or whether another condition exposed an existing limitation.</p>



<p class="wp-block-paragraph">The timing made the OS upgrade a reasonable starting hypothesis. It did not make it the demonstrated root cause.</p>



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



<p class="wp-block-paragraph">This incident followed a useful progression. The most valuable habit was to follow the evidence backward, from the visible error to the first failure, and then forward again, from the configuration difference to a verified recovery.</p>



<p class="wp-block-paragraph">When critical applications stop working, you need more than a restart&#8230; You need a team that understands the platform. At <strong>dbi services</strong>, our Service Desk combines responsive support with deep technical expertise to investigate incidents, identify their causes, and guide recovery with clear, evidence-based recommendations.</p>



<p class="wp-block-paragraph"><strong>Looking for expert support for your Oracle Fusion Middleware environment? Contact us to discuss how we can help.</strong></p>



<p class="wp-block-paragraph"><a href="https://www.dbi-services.com/blog/category/application-integration-middleware/weblogic/" target="_blank" rel="noreferrer noopener">More related blogs</a></p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-reports-rep-50125-an-internal-exception-occurred/">Oracle Reports: REP-50125: An internal exception occurred</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-reports-rep-50125-an-internal-exception-occurred/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Oracle Fusion Middleware to the Cloud</title>
		<link>https://www.dbi-services.com/blog/oracle-fusion-middleware-to-the-cloud/</link>
					<comments>https://www.dbi-services.com/blog/oracle-fusion-middleware-to-the-cloud/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Thu, 01 Oct 2026 07:02:26 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Non classifié(e)]]></category>
		<category><![CDATA[Fusion Middleware]]></category>
		<category><![CDATA[Oracle]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=45506</guid>

					<description><![CDATA[<p>More and more often, we are contacted to assess, challenge, and advise on the migration of Oracle Fusion Middleware platforms to the cloud. These discussions usually involve critical environments based on Oracle WebLogic Server, Oracle Forms, and sometimes Oracle Reports. The objective is rarely just to “move to the cloud”. It is about understanding what [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-fusion-middleware-to-the-cloud/">Oracle Fusion Middleware to the Cloud</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">More and more often, we are contacted to assess, challenge, and advise on the migration of Oracle Fusion Middleware platforms to the cloud.</p>



<p class="wp-block-paragraph">These discussions usually involve critical environments based on Oracle WebLogic Server, Oracle Forms, and sometimes Oracle Reports. The objective is rarely just to “move to the cloud”. It is about understanding what can realistically be migrated, what should be modernized, what must be validated, and where the main technical, operational, and licensing risks are.</p>



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



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud-1024x576.png" alt="" class="wp-image-46947" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud-1024x576.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud-300x169.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud-768x432.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud-1536x864.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/FMW-to-Cloud.png 1672w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Based on these discussions, I would like to share a few practical considerations that may be useful when evaluating a cloud migration strategy for Oracle Fusion Middleware workloads.</p>



<h2 id="h-lift-and-shift-is-not-a-shortcut-it-is-a-controlled-migration-strategy" class="wp-block-heading">Lift and shift is not a shortcut, it is a controlled migration strategy</h2>



<p class="wp-block-paragraph">For Oracle WebLogic, Forms and Reports platforms, a cloud migration should not automatically be presented as an application modernization project.</p>



<p class="wp-block-paragraph">In many cases, the first realistic step is a <strong>lift-and-shift migration</strong>. The goal is not to rewrite Forms modules, redesign the full application, or replace every legacy component immediately. The goal is to rebuild a controlled target platform in the cloud while preserving the application behavior as much as possible.</p>



<p class="wp-block-paragraph">However, lift and shift does not mean copying virtual machines and hoping that everything will work.</p>



<p class="wp-block-paragraph">A serious migration requires a detailed comparison between the existing platform and the target one: WebLogic domain configuration, Managed Servers, Datasources, Wallets, Certificates, JVM version, Patch level, Forms runtime configuration, Reports configuration, File system dependencies, Fonts, Printers, Batch jobs, Monitoring, Backup, Restart procedures, and Operational scripts.</p>



<p class="wp-block-paragraph">Oracle documents several WebLogic migration approaches to <a href="https://www.oracle.com/cloud/" target="_blank" rel="noreferrer noopener">OCI</a>, including manual deployment, WebLogic Deploy Tooling, and WLST-based deployment scripts targeted to a new domain. Oracle also describes WebLogic Server for OCI as a way to provision a WebLogic domain in OCI more quickly than a traditional on-premises setup.</p>



<p class="wp-block-paragraph">This is why lift and shift should be seen as an engineering exercise, not as a low-effort infrastructure move.</p>



<h2 id="h-why-oci-is-naturally-aligned-with-oracle-fusion-middleware" class="wp-block-heading">Why OCI is naturally aligned with Oracle Fusion Middleware</h2>



<p class="wp-block-paragraph">It would not be accurate to say that Oracle Fusion Middleware can only run on OCI. Oracle’s own cloud licensing policy lists AWS, Azure, and Google Cloud Platform as &#8220;Authorized Cloud Environments&#8221; for specific Oracle software licensing rules. The same policy also explains how vCPUs must be counted in these environments and states that the Oracle Processor Core Factor Table is not applicable there.</p>



<p class="wp-block-paragraph">So the real point is not that other clouds are impossible. The point is that <strong>OCI is naturally aligned with Oracle Fusion Middleware workloads</strong>.</p>



<p class="wp-block-paragraph">For WebLogic, Oracle provides OCI-specific deployment models, Marketplace-based options, and documented migration patterns. For Kubernetes-based deployments, Oracle also documents WebLogic Server for OKE using a Marketplace stack, including lifecycle-management components such as Jenkins and the WebLogic Kubernetes Operator.</p>



<p class="wp-block-paragraph">From an operational and licensing perspective, OCI also gives Oracle customers options such as BYOL and Universal Credits-based models. Oracle’s Support Rewards FAQ states that BYOL services on the Universal Credits Model rate card are eligible for the Support Rewards program.</p>



<p class="wp-block-paragraph">This does not remove the need for a proper license review. But it does mean that for Oracle middleware workloads, OCI often provides a more Oracle-native discussion: infrastructure, middleware, licensing, support model, and target architecture can be addressed within the same ecosystem.</p>



<p class="wp-block-paragraph"></p>



<h2 id="h-oracle-reports-must-be-treated-as-a-specific-risk" class="wp-block-heading">Oracle Reports must be treated as a specific risk</h2>



<p class="wp-block-paragraph">For Oracle Forms and WebLogic, a structured lift-and-shift approach to OCI can be a realistic option. For Oracle Reports, the discussion must be more careful.</p>



<p class="wp-block-paragraph">Oracle Reports is still present in many enterprise Forms platforms, but it has technical characteristics that must be validated before any cloud migration. Reports cluster members or clients use multicast to discover other nodes, and that there is no workaround for using multicast in that context.</p>



<p class="wp-block-paragraph">This is a critical point because multicast is generally not available in all cloud network architectures.</p>



<p class="wp-block-paragraph">In practical terms, Oracle Reports should not be treated as a simple checkbox in the migration plan. It requires a dedicated technical validation: Reports Server configuration, naming service, generated output, cache behavior, fonts, printers, file paths, batch execution, restart behavior, and integration with the Forms application.</p>



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



<p class="wp-block-paragraph">The conclusion is therefore simple: WebLogic and Forms can be good candidates for a controlled lift-and-shift migration to OCI. Oracle Reports must be assessed separately, tested carefully, and challenged architecturally.</p>



<p class="wp-block-paragraph">OCI can reduce complexity for Oracle Fusion Middleware migrations, but it does not remove the need for deep product expertise. A successful migration is not only a cloud project, it is a WebLogic, Forms, Reports, licensing, operations, and validation project.</p>



<p class="wp-block-paragraph">If you are planning to migrate an Oracle Fusion Middleware platform to the cloud, or if you simply want to assess whether such a migration is realistic for your environment, feel free to contact me. I would be happy to help you challenge the architecture, identify the risks, and define a pragmatic migration approach.</p>



<p class="wp-block-paragraph">More related blogs <a href="https://www.dbi-services.com/blog/category/application-integration-middleware/weblogic/" target="_blank" rel="noreferrer noopener">here</a>.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-fusion-middleware-to-the-cloud/">Oracle Fusion Middleware to the Cloud</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-fusion-middleware-to-the-cloud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JBoss EAP: From Traditional Application Server to Modern Enterprise Runtime</title>
		<link>https://www.dbi-services.com/blog/jboss-eap-from-traditional-application-server-to-modern-enterprise-runtime/</link>
					<comments>https://www.dbi-services.com/blog/jboss-eap-from-traditional-application-server-to-modern-enterprise-runtime/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Thu, 01 Oct 2026 06:49:06 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[JBoss EAP]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=45513</guid>

					<description><![CDATA[<p>When discussing modern application platforms, JBoss EAP is rarely the technology that creates the most excitement. Today, the attention is more often on Kubernetes, OpenShift, Quarkus, serverless platforms, service meshes, GitOps, and event-driven architectures. In this context, the question is not simply: “Should we replace JBoss EAP?” The real question is: “How can we modernize [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/jboss-eap-from-traditional-application-server-to-modern-enterprise-runtime/">JBoss EAP: From Traditional Application Server to Modern Enterprise Runtime</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">When discussing modern application platforms, JBoss EAP is rarely the technology that creates the most excitement. Today, the attention is more often on <a href="https://kubernetes.io/" target="_blank" rel="noreferrer noopener">Kubernetes</a>, <a href="https://www.redhat.com/en/technologies/cloud-computing/openshift" target="_blank" rel="noreferrer noopener">OpenShift</a>, Quarkus, serverless platforms, service meshes, GitOps, and event-driven architectures.</p>



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



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="576" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern-1024x576.png" alt="" class="wp-image-47300" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern-1024x576.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern-300x169.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern-768x432.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern-1536x864.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/10/JBoss-EAP-modern.png 1672w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">In this context, the question is not simply: “Should we replace JBoss EAP?”</p>



<p class="wp-block-paragraph">The real question is: “How can we modernize these workloads without creating unnecessary risk?”</p>



<p class="wp-block-paragraph">JBoss EAP still has a future, but its role is changing. It should no longer be seen only as a traditional application server running on long-living virtual machines. Its future is as a supported enterprise Java runtime that can help customers modernize progressively, especially when moving toward OpenShift.</p>



<p class="wp-block-paragraph">But in large enterprise environments, technology relevance is not measured only by hype. It is measured by stability, supportability, lifecycle, risk, operational maturity, and the ability to run critical workloads for many years.</p>



<p class="wp-block-paragraph">From that perspective, JBoss EAP still has a future!</p>



<p class="wp-block-paragraph">Not because every new Java application should be deployed on a traditional application server. That would not be realistic. Its future is different: JBoss EAP remains a strategic runtime for enterprise Java systems that require continuity, long-term support, and controlled modernization.</p>



<h2 id="h-the-future-of-eap-is-linked-to-application-lifecycle-not-hype" class="wp-block-heading">The future of EAP is linked to application lifecycle, not hype</h2>



<p class="wp-block-paragraph">Many enterprise applications are not replaced every three years. They live for ten, fifteen, sometimes twenty years. They support billing, public administration, banking processes, insurance workflows, logistics, healthcare platforms, or internal business systems.</p>



<p class="wp-block-paragraph">For these applications, the most important question is not whether the runtime is fashionable. The question is whether the platform remains supportable, secure, upgradeable, and aligned with the enterprise roadmap.</p>



<p class="wp-block-paragraph">This is where JBoss EAP has value.</p>



<p class="wp-block-paragraph">Its future will be driven by customers who need a stable enterprise Java platform for existing workloads, not by teams looking for the lightest runtime for a new microservice.</p>



<h2 id="h-red-hat-s-direction-continuity-with-modernization" class="wp-block-heading"><br>Red Hat’s direction: continuity with modernization</h2>



<p class="wp-block-paragraph">Red Hat’s strategy around JBoss EAP is not to freeze the platform in the past. The move to EAP 8 and Jakarta EE 10 shows that the product continues to follow the evolution of enterprise Java.</p>



<p class="wp-block-paragraph">This is a major point. Jakarta EE 10 is not just a cosmetic version change. For many customers, it forces a real application review, especially because of the namespace migration from <code>javax.*</code> to <code>jakarta.*</code>, dependency updates, library compatibility, and testing effort.</p>



<p class="wp-block-paragraph">That means the future of JBoss EAP is not passive. Customers will still need migration projects, compatibility assessments, application testing, dependency cleanup, and platform upgrades.</p>



<p class="wp-block-paragraph">In parallel, Red Hat also positions EAP in the OpenShift ecosystem, with supported container images and deployment approaches for OpenShift. This confirms that EAP is not limited to the traditional VM model anymore.</p>



<p class="wp-block-paragraph">The message is clear: JBoss EAP is evolving, but in an enterprise way. It does not try to become Quarkus. It keeps its role as a supported Jakarta EE application platform while becoming more compatible with modern operational models.</p>



<h2 id="h-the-real-challenge-reducing-dependency-on-the-application-server" class="wp-block-heading">The real challenge: reducing dependency on the application server</h2>



<p class="wp-block-paragraph">Some applications depend too much on the application server. Over the years, many systems have accumulated runtime-specific assumptions:</p>



<ul class="wp-block-list">
<li>server-specific modules,</li>



<li>configuration hidden in the application server,</li>



<li>hardcoded JNDI names,</li>



<li>deployment scripts known only by operations teams,</li>



<li>local filesystem dependencies,</li>



<li>legacy security mechanisms,</li>



<li>clustering assumptions,</li>



<li>old libraries bundled with the application.</li>
</ul>



<p class="wp-block-paragraph">These are not only technical details. They are modernization blockers.</p>



<p class="wp-block-paragraph">A good EAP strategy should therefore not only be &#8220;upgrade the server.&#8221; It should also reduce unnecessary coupling between the application and the runtime.</p>



<p class="wp-block-paragraph">The objective is not to leave EAP. The objective is to make the application more portable, more testable, easier to deploy, and less dependent on hidden server configuration.</p>



<p class="wp-block-paragraph">This is where consulting expertise brings value: identifying which dependencies are legitimate enterprise platform usage, and which ones are accidental complexity created by years of operations.</p>



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



<p class="wp-block-paragraph">The future of JBoss EAP is not about competing with every modern Java runtime.</p>



<p class="wp-block-paragraph">Its future is to remain a reliable enterprise platform for applications that still need the Jakarta EE model, long-term support, and controlled modernization.</p>



<p class="wp-block-paragraph">At the same time, customers should not ignore Quarkus, Spring Boot, or other modern runtimes. But Quarkus does not replace JBoss EAP in all cases. The right strategy is not to force a single runtime everywhere. The right strategy is to understand the application lifecycle, reduce unnecessary runtime coupling, and choose the platform that matches the workload.</p>



<p class="wp-block-paragraph">In the future, JBoss EAP will remain strategic wherever enterprise Java continuity, supportability, and risk control matter.</p>



<p class="wp-block-paragraph"><a href="https://www.dbi-services.com/blog/category/application-integration-middleware/jboss-eap/" target="_blank" rel="noreferrer noopener">JBoss EAP Blogs</a></p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/jboss-eap-from-traditional-application-server-to-modern-enterprise-runtime/">JBoss EAP: From Traditional Application Server to Modern Enterprise Runtime</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/jboss-eap-from-traditional-application-server-to-modern-enterprise-runtime/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Observability vs Monitoring</title>
		<link>https://www.dbi-services.com/blog/observability-vs-monitoring-2/</link>
					<comments>https://www.dbi-services.com/blog/observability-vs-monitoring-2/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 07:43:12 +0000</pubDate>
				<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=42989</guid>

					<description><![CDATA[<p>As engineers, we’ve all built dashboards, tuned alerts, and fought noisy monitoring systems. Tools like Elastic, Prometheus, Grafana, Zabbix, or Nagios have shaped how we operate infrastructure for years. Yet modern distributed systems introduced a shift in mindset: monitoring is no longer enough. Enter observability, not as a buzzword, but as an operational necessity. This [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/observability-vs-monitoring-2/">Observability vs Monitoring</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As engineers, we’ve all built dashboards, tuned alerts, and fought noisy monitoring systems. Tools like <a href="https://www.elastic.co/" target="_blank" rel="noreferrer noopener">Elastic</a>, <a href="https://prometheus.io/" target="_blank" rel="noreferrer noopener">Prometheus</a>, <a href="https://grafana.com" target="_blank" rel="noreferrer noopener">Grafana</a>, <a href="https://www.zabbix.com/" target="_blank" rel="noreferrer noopener">Zabbix</a>, or <a href="https://www.nagios.org/" target="_blank" rel="noreferrer noopener">Nagios </a>have shaped how we operate infrastructure for years.</p>



<p class="wp-block-paragraph">Yet modern distributed systems introduced a shift in mindset: monitoring is no longer enough. Enter observability, not as a buzzword, but as an operational necessity.</p>



<p class="wp-block-paragraph">This blog explains the difference clearly, with practical engineering examples and a real-world perspective.</p>



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



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="631" height="513" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/02/observability-vs-monitoring.png" alt="" class="wp-image-42990" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/02/observability-vs-monitoring.png 631w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/02/observability-vs-monitoring-300x244.png 300w" sizes="auto, (max-width: 631px) 100vw, 631px" /></figure>



<h2 id="h-monitoring-knowing-when-something-is-wrong" class="wp-block-heading">Monitoring: Knowing <em>When</em> Something Is Wrong</h2>



<p class="wp-block-paragraph">Traditional monitoring answers a very specific set of questions:</p>



<ul class="wp-block-list">
<li>Is the service up?</li>



<li>Are resources within acceptable limits?</li>



<li>Are error rates crossing thresholds?</li>



<li>Are we respecting SLAs?</li>
</ul>



<p class="wp-block-paragraph">Monitoring is fundamentally about predefined signals.</p>



<h3 id="h-what-monitoring-does-well" class="wp-block-heading">What Monitoring Does Well</h3>



<p class="wp-block-paragraph">Monitoring excels at:</p>



<ul class="wp-block-list">
<li>Incident detection</li>



<li>Alerting and operational response</li>



<li>Capacity tracking and trend analysis</li>



<li>Infrastructure health visibility</li>
</ul>



<p class="wp-block-paragraph"><strong>Example: Classic Monitoring Workflow</strong></p>



<p class="wp-block-paragraph">You monitor an API using:</p>



<ul class="wp-block-list">
<li>Prometheus metrics (<code>http_requests_total</code>, latency histograms)</li>



<li>Grafana dashboards</li>



<li>Alert rule: 5xx error rate &gt; 2% for 5 minutes</li>
</ul>



<p class="wp-block-paragraph">You immediately know something is wrong. But the next question appears: Why is it wrong?</p>



<p class="wp-block-paragraph">And this is where traditional monitoring starts to hit limits.</p>



<h3 id="h-the-core-limitation" class="wp-block-heading">The core limitation</h3>



<p class="wp-block-paragraph">Monitoring depends on:</p>



<ul class="wp-block-list">
<li>Metrics you anticipated</li>



<li>Thresholds you defined in advance</li>



<li>Scenarios you already imagined</li>
</ul>



<p class="wp-block-paragraph">When failures fall outside those assumptions, which is common in distributed systems, troubleshooting becomes exploratory and slow.</p>



<h2 id="h-observability-understanding-why-something-is-wrong" class="wp-block-heading">Observability: Understanding Why Something Is Wrong</h2>



<p class="wp-block-paragraph">Observability is not just more dashboards. It is the ability to <strong>understand internal system behavior from external outputs</strong>, even when you don’t already know what to look for.</p>



<p class="wp-block-paragraph">Instead of asking: “Is the system healthy?”</p>



<p class="wp-block-paragraph">Observability lets you ask:</p>



<ul class="wp-block-list">
<li>Why are users experiencing latency?</li>



<li>Which service introduced the regression?</li>



<li>What changed right before the incident?</li>



<li>Which request path is affected?</li>
</ul>



<p class="wp-block-paragraph">This is a fundamentally different operational capability.</p>



<p class="wp-block-paragraph">Modern observability relies on correlated telemetry:</p>



<ul class="wp-block-list">
<li>Metrics &#8211; aggregated system behavior</li>



<li>Logs &#8211; detailed contextual events</li>



<li>Traces &#8211; end-to-end request journeys</li>
</ul>



<p class="wp-block-paragraph">Individually, they are useful. Together, they provide causal understanding.</p>



<h2 id="h-practical-evolution-from-monitoring-to-observability" class="wp-block-heading">Practical Evolution: From Monitoring to Observability</h2>



<p class="wp-block-paragraph">You don’t replace monitoring, you evolve it. A pragmatic path:</p>



<ol class="wp-block-list">
<li>Define meaningful metrics<br>Focus on user-centric signals: latency, traffic, errors, saturation.</li>



<li>Structure logs properly<br>Include fields like <code>service</code>, <code>environment</code>, <code>trace_id</code>, <code>deployment_version</code>.</li>



<li>Instrument distributed tracing<br>Start with critical journeys (checkout, authentication, search).</li>



<li>Enable cross-linking<br>Alert -&gt; metric -&gt; trace -&gt; logs must be one flow.</li>



<li>Shift toward SLO-based thinking<br>Alert on user impact, not raw CPU.</li>
</ol>



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



<p class="wp-block-paragraph">Observability isn’t about collecting more data, it’s about turning telemetry into understanding.</p>



<p class="wp-block-paragraph">And that is where mature engineering organizations truly differentiate themselves: not by how much they monitor, but by how quickly and confidently they can understand, diagnose, and resolve complex system behaviors in production.</p>



<p class="wp-block-paragraph">If your organization is starting this journey or aiming to accelerate its maturity, we would be happy to help. From strategy and tooling selection to implementation and operational enablement, feel free to reach out and connect with us.</p>



<p class="wp-block-paragraph">Related blogs : <a href="https://www.dbi-services.com/blog/tag/zabbix/" target="_blank" rel="noreferrer noopener">Zabbix</a>, <a href="https://www.dbi-services.com/blog/tag/monitoring/">monitoring</a>, <a href="https://www.dbi-services.com/blog/tag/elastic-stack/">Elastic</a></p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/observability-vs-monitoring-2/">Observability vs Monitoring</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/observability-vs-monitoring-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Moving JBoss EAP Workloads to OpenShift</title>
		<link>https://www.dbi-services.com/blog/moving-jboss-eap-workloads-to-openshift/</link>
					<comments>https://www.dbi-services.com/blog/moving-jboss-eap-workloads-to-openshift/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Thu, 17 Sep 2026 07:59:25 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[JBoss EAP]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[kubernetes]]></category>
		<category><![CDATA[redhat]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=45508</guid>

					<description><![CDATA[<p>More and more customers running traditional Java EE or Jakarta EE workloads are asking the same question: “We already use JBoss EAP. Should we move to Kubernetes or OpenShift, and do we need to replace the application server?” The answer is not to rush into a rewrite. In many cases, the most realistic and valuable [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/moving-jboss-eap-workloads-to-openshift/">Moving JBoss EAP Workloads to OpenShift</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">More and more customers running traditional Java EE or Jakarta EE workloads are asking the same question: “We already use JBoss EAP. Should we move to Kubernetes or OpenShift, and do we need to replace the application server?”</p>



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



<p class="wp-block-paragraph">The answer is not to rush into a rewrite. In many cases, the most realistic and valuable first step is to move the existing JBoss EAP workloads to OpenShift, while modernizing the way they are built, configured, deployed, monitored, and operated.</p>



<p class="wp-block-paragraph">This is not a simple lift-and-shift. It is a controlled modernization of the runtime and operating model.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift-1024x576.png" alt="" class="wp-image-46944" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift-1024x576.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift-300x169.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift-768x432.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift-1536x864.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JBoss-EAP-Openshift.png 1672w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="h-the-customer-scenario-existing-jboss-eap-new-platform-expectations" class="wp-block-heading">The customer scenario: existing JBoss EAP, new platform expectations</h2>



<p class="wp-block-paragraph">A typical customer already has several applications running on JBoss EAP. Some are packaged as WAR files, others as EAR files. They use datasources, JNDI names, security realms or Elytron, JMS, transactions, batch jobs, custom modules, shared libraries, and sometimes clustering or HTTP session replication.</p>



<p class="wp-block-paragraph">At the same time, the infrastructure team wants to move to Kubernetes or OpenShift to standardize deployments, improve automation, reduce manual operations, and align with a container-based platform strategy.</p>



<p class="wp-block-paragraph">In this situation, recommending an immediate migration to another runtime such as Quarkus would often be too aggressive. The customer would have to manage two major changes at the same time: a platform migration and an application architecture migration.</p>



<p class="wp-block-paragraph">A better approach is to keep JBoss EAP as the first target runtime and move to OpenShift.</p>



<p class="wp-block-paragraph">Red Hat provides specific documentation for using JBoss EAP on OpenShift, including build and deployment approaches based on Helm charts for EAP 8.x. This matters because the customer is not moving to an unsupported or exotic model. They are moving an existing Red Hat middleware platform into a Red Hat container platform.</p>



<h2 id="h-why-jboss-eap-still-makes-sense-on-openshift" class="wp-block-heading">Why JBoss EAP still makes sense on OpenShift</h2>



<p class="wp-block-paragraph">JBoss EAP remains a strong choice when the application already depends on enterprise Java capabilities. For existing applications, EAP provides continuity. The customer can keep familiar application patterns which reduce risk compared to a full rewrite.</p>



<p class="wp-block-paragraph">The real value of OpenShift is not simply “running EAP in a container”. The value comes from changing the operational model.</p>



<p class="wp-block-paragraph">Instead of manually maintaining application servers on virtual machines, the target model should be:</p>



<ul class="wp-block-list">
<li>One application image per application or application group,</li>



<li>Configuration externalized through ConfigMaps, Secrets, and environment variables,</li>



<li>Immutable deployments,</li>



<li>Health checks and probes,</li>



<li>Centralized logs,</li>



<li>Controlled resource requests and limits,</li>



<li>Automated deployments through CI/CD or GitOps,</li>



<li>Rolling updates and rollback capability,</li>



<li>Platform-level security and image governance.</li>
</ul>



<p class="wp-block-paragraph">Red Hat documents that EAP applications can be built from compiled WAR or EAR archives and deployed onto a JBoss EAP runtime stack for OpenShift. That is important for real-world migration projects because many customers cannot rewrite their packaging model immediately.</p>



<p class="wp-block-paragraph">For EAP 7.4 customers, there are also Red Hat-provided OpenShift runtime images, such as the JBoss EAP 7.4 OpenJDK 11 runtime image, described as a base image to run an EAP server and application.</p>



<p class="wp-block-paragraph">The recommendation should therefore be clear: do not reproduce the old VM model inside Kubernetes. Use the move to OpenShift to clean up the runtime model.</p>



<p class="wp-block-paragraph">A good migration should review:</p>



<ul class="wp-block-list">
<li>EAP and Java versions,</li>



<li>WAR/EAR packaging,</li>



<li>Standalone.xml or domain configuration,</li>



<li>Datasources and JDBC drivers,</li>



<li>JMS usage and MDBs,</li>



<li>Security integration,</li>



<li>Filesystem dependencies,</li>



<li>Clustering and session handling,</li>



<li>JVM tuning,</li>



<li>Startup and shutdown behavior,</li>



<li>Logging format;monitoring and alerting,</li>



<li>CI/CD pipeline,</li>



<li>Backup and recovery constraints.</li>
</ul>



<p class="wp-block-paragraph">Some applications will be easy to containerize. Others will need technical adaptation. A few may not be good candidates without refactoring.</p>



<h2 id="h-recommended-approach" class="wp-block-heading">Recommended approach</h2>



<p class="wp-block-paragraph">For a customer already using JBoss EAP, my recommendation is:</p>



<p class="wp-block-paragraph">Start with JBoss EAP on OpenShift. Stabilize the container model. Then identify which applications or components deserve deeper modernization.</p>



<p class="wp-block-paragraph">This approach avoids unnecessary risk. It gives the customer a supported and realistic path to Kubernetes while preserving the value of the existing EAP investment.</p>



<p class="wp-block-paragraph">OpenShift does not automatically make an application cloud-native. The right approach is to understand the existing EAP landscape, modernize the operating model first, and only then decide where a lighter, Kubernetes-native runtime brings measurable value.</p>



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



<p class="wp-block-paragraph">In the end, the decision should not be driven by trends, but by application reality: architecture, dependencies, operational constraints, risk, and business value.</p>



<p class="wp-block-paragraph">If you would like more information or need support with JBoss EAP, from troubleshooting and performance optimization to upgrades and patching, feel free to contact me. I can also support you in assessing and planning the migration of your JBoss workloads to OpenShift or Kubernetes.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/moving-jboss-eap-workloads-to-openshift/">Moving JBoss EAP Workloads to OpenShift</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/moving-jboss-eap-workloads-to-openshift/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Oracle Forms: Java Web Start or FSAL?</title>
		<link>https://www.dbi-services.com/blog/oracle-forms-java-web-start-or-fsal/</link>
					<comments>https://www.dbi-services.com/blog/oracle-forms-java-web-start-or-fsal/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Thu, 17 Sep 2026 07:30:51 +0000</pubDate>
				<category><![CDATA[Oracle Fusion Middleware]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[FMW]]></category>
		<category><![CDATA[Fusion Middleware]]></category>
		<category><![CDATA[Oracle]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=46823</guid>

					<description><![CDATA[<p>A customer recently asked me about the difference between Java Web Start and the Forms Standalone Launcher for running Oracle Forms applications. I found it a very good question. From the user’s perspective, both methods look similar: the Forms application opens in its own Java window. The real difference is how the application is launched, [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-forms-java-web-start-or-fsal/">Oracle Forms: Java Web Start or FSAL?</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A customer recently asked me about the difference between Java Web Start and the Forms Standalone Launcher for running Oracle Forms applications.</p>



<p class="wp-block-paragraph">I found it a very good question. From the user’s perspective, both methods look similar: the Forms application opens in its own Java window. The real difference is how the application is launched, deployed, secured, and maintained on the workstation.</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL-1024x576.png" alt="" class="wp-image-46827" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL-1024x576.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL-300x169.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL-768x432.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL-1536x864.png 1536w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/09/JWS_VS_FSAL.png 1672w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Here is the practical answer, based on experience with Oracle Forms environments.</p>



<p class="wp-block-paragraph" id="h-first-both-methods-use-the-same-forms-architecture"><strong>First, both methods use the same Forms architecture</strong></p>



<p class="wp-block-paragraph">Whether you use Java Web Start or FSAL:</p>



<ul class="wp-block-list">
<li>The Forms application remains hosted centrally on the application server.</li>



<li>The <code>.fmx</code>, <code>.mmx</code>, and <code>.plx</code> modules stay on the server.</li>



<li>A Java-based Forms client runs on the user’s workstation.</li>



<li>The client communicates with Oracle Forms Services, generally hosted on WebLogic Server.</li>



<li>The application itself normally does not need to be rewritten when changing the launch method.</li>
</ul>



<p class="wp-block-paragraph">Therefore, FSAL is not a return to the old Forms 6i client/server architecture. It only provides a similar desktop experience,</p>



<h1 class="wp-block-heading">Java Web Start</h1>



<p class="wp-block-paragraph">Java Web Start, or JWS, launches the application using a JNLP file.</p>



<p class="wp-block-paragraph">The user normally opens a Forms URL:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
https://forms.example.com/forms/frmservlet?config=webstart
</pre></div>


<p class="wp-block-paragraph">The server generates a <code>.jnlp</code> file, which is downloaded and opened by Java Web Start. The Forms application then runs in a separate Java window.</p>



<p class="wp-block-paragraph">Oracle describes Java Web Start as a <strong>semi-browserless configuration</strong>: the browser can be used to initiate the application, but the application does not run inside the browser window.</p>



<h3 class="wp-block-heading">Advantages of Java Web Start</h3>



<ul class="wp-block-list">
<li>Users can start the application from a familiar web link.</li>



<li>The JNLP configuration is generated centrally by the Forms server.</li>



<li>Java archives can be downloaded and cached automatically.</li>



<li>It can integrate well with environments where authentication starts in the browser.</li>



<li>It usually requires limited change when replacing an older browser-based Forms deployment.</li>
</ul>



<h3 class="wp-block-heading">Disadvantages of Java Web Start</h3>



<ul class="wp-block-list">
<li>It depends on Java Web Start technology, which is associated mainly with Java 8.</li>



<li>Java Web Start is no longer included in modern JDK releases.</li>



<li>JNLP file associations can behave differently depending on the workstation and browser.</li>



<li>Browser security settings may prevent the JNLP file from opening automatically.</li>



<li>Java cache problems are relatively common.</li>



<li>Certificate changes, proxies, and local Java security settings can affect application startup.</li>



<li>Troubleshooting frequently involves the user’s workstation rather than the Forms server.</li>
</ul>



<h3 class="wp-block-heading">My experience with Java Web Start</h3>



<p class="wp-block-paragraph">Once correctly configured, Java Web Start works well. However, many operational incidents are related to the client environment:</p>



<ul class="wp-block-list">
<li>The <code>.jnlp</code> file is downloaded but not opened.</li>



<li>The workstation uses the wrong Java version.</li>



<li>The operating system loses the JNLP file association.</li>



<li>An old JAR remains in the Java cache.</li>



<li>A certificate renewal causes a new security warning.</li>



<li>Browser updates change how downloaded JNLP files are handled.</li>
</ul>



<p class="wp-block-paragraph">These are rarely Forms application problems, but they still generate support requests.</p>



<h3 class="wp-block-heading">When should you choose Java Web Start?</h3>



<p class="wp-block-paragraph">Java Web Start remains reasonable when:</p>



<ul class="wp-block-list">
<li>The organization already has a stable and managed Java 8 environment.</li>



<li>The existing JWS deployment works reliably.</li>



<li>Users need to launch Forms from a browser-based portal.</li>



<li>The authentication or SSO process requires a browser.</li>



<li>The objective is a short-term migration with minimal client-side change.</li>
</ul>



<p class="wp-block-paragraph">I would be more cautious about selecting JWS for a completely new, long-term deployment because of its dependency on legacy Java deployment technology.</p>



<h1 class="wp-block-heading">Forms Standalone Launcher</h1>



<p class="wp-block-paragraph">The Forms Standalone Launcher, or FSAL, launches Oracle Forms without relying on a browser or Java Web Start.</p>



<p class="wp-block-paragraph">The workstation runs the <code>frmsal.jar</code> launcher directly:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
java -jar frmsal.jar -url &quot;https://forms.example.com/forms/frmservlet?config=standaloneapp&quot;
</pre></div>


<p class="wp-block-paragraph">In practice, users do not need to enter this command. It can be included in a desktop shortcut, shell script, batch file, or software deployment package.</p>



<h3 class="wp-block-heading">Advantages of FSAL</h3>



<ul class="wp-block-list">
<li>It is fully independent of the browser.</li>



<li>It does not require Java Web Start or a browser plug-in.</li>



<li>It provides a clean desktop application experience.</li>



<li>Browser updates do not affect the application launch.</li>



<li>The startup command can be standardized and controlled by the IT team.</li>



<li>Java parameters, memory settings, truststores, and logging can be explicitly configured.</li>



<li>It is generally easier to reproduce and troubleshoot startup issues.</li>



<li>It aligns better with current Java versions and Oracle’s modern Forms direction.</li>
</ul>



<h3 class="wp-block-heading">Disadvantages of FSAL</h3>



<ul class="wp-block-list">
<li>The <code>frmsal.jar</code> launcher must be distributed to every workstation.</li>



<li>The launcher version must match the Oracle Forms server version and patch level.</li>



<li>IT must maintain the desktop shortcut or startup script.</li>



<li>Java and the required certificates must be correctly deployed on each workstation.</li>



<li>Updating or patching Forms may require redistributing <code>frmsal.jar</code>.</li>



<li>SSO, single sign-off, JavaScript integration, and communication with web pages require careful validation.</li>



<li>The initial workstation packaging may require more preparation than simply publishing a URL.</li>
</ul>



<h3 class="wp-block-heading">My experience with FSAL</h3>



<p class="wp-block-paragraph">FSAL generally requires more preparation during the initial rollout. The Java runtime, <code>frmsal.jar</code>, truststore, startup parameters, and shortcut must be packaged correctly.</p>



<p class="wp-block-paragraph">Once that work is completed, the result is usually more predictable.</p>



<p class="wp-block-paragraph">The application is no longer affected by browser behavior, JNLP file associations, or Java Web Start cache issues. When a startup problem occurs, the launch command and console output also provide a clearer troubleshooting path.</p>



<p class="wp-block-paragraph">One important operational point is the management of <code>frmsal.jar</code>. It should not be treated as a generic launcher that can be reused forever. It is version-specific and must remain aligned with the Forms installation.</p>



<h3 class="wp-block-heading">When should you choose FSAL?</h3>



<p class="wp-block-paragraph">FSAL is generally the better choice when:</p>



<ul class="wp-block-list">
<li>You are implementing a new Oracle Forms deployment.</li>



<li>You are upgrading to a recent Oracle Forms release.</li>



<li>You want to remove browser dependencies.</li>



<li>You want to use a modern and centrally managed Java runtime.</li>



<li>Workstations are managed using tools such as Microsoft Intune, SCCM, or another software distribution platform.</li>



<li>You need predictable startup parameters and easier troubleshooting.</li>



<li>Forms is primarily used as a business desktop application.</li>
</ul>



<h1 class="wp-block-heading">Direct comparison</h1>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><th>Area</th><th>Java Web Start</th><th>FSAL</th></tr><tr><td>Launch method</td><td>URL and JNLP file</td><td>Java command, script, or shortcut</td></tr><tr><td>Browser dependency</td><td>Partial</td><td>None</td></tr><tr><td>Java Web Start required</td><td>Yes</td><td>No</td></tr><tr><td>User experience</td><td>Separate Java window</td><td>Separate Java window</td></tr><tr><td>Client deployment</td><td>JNLP association and compatible Java</td><td>Java runtime and <code>frmsal.jar</code></td></tr><tr><td>Central configuration</td><td><code>formsweb.cfg</code> and JNLP</td><td><code>formsweb.cfg</code> and launch package</td></tr><tr><td>Main operational risk</td><td>Java cache, JNLP, browser and file association</td><td>Launcher distribution and version alignment</td></tr><tr><td>Troubleshooting</td><td>Often distributed across browser, Java and OS</td><td>Generally more direct through command and logs</td></tr><tr><td>Best fit</td><td>Existing stable JWS deployment</td><td>New or modernized deployment</td></tr></tbody></table></figure>



<h1 class="wp-block-heading">My recommendation</h1>



<p class="wp-block-paragraph">For an existing, stable Java Web Start environment, I would not migrate to FSAL only for the sake of changing technology. The migration should provide a clear operational or security benefit.</p>



<p class="wp-block-paragraph">For a new deployment or a major Oracle Forms upgrade, I would generally choose FSAL.</p>



<p class="wp-block-paragraph">It removes the browser and Java Web Start dependencies, gives the IT team better control over the client runtime, and provides a more predictable operational model.</p>



<p class="wp-block-paragraph">The final choice should nevertheless be validated against:</p>



<ul class="wp-block-list">
<li>The Oracle Forms version</li>



<li>The certified client Java version</li>



<li>The SSO implementation</li>



<li>WebUtil and custom JAR usage</li>



<li>JavaScript integration</li>



<li>Proxy and TLS requirements</li>



<li>The workstation deployment strategy</li>
</ul>



<p class="wp-block-paragraph">The key point is simple: <strong>Java Web Start is easier to expose through a URL, while FSAL is easier to control as a managed desktop application.</strong></p>



<p class="wp-block-paragraph"><strong><em>Oracle documentation</em></strong></p>



<ul class="wp-block-list">
<li><a href="https://docs.oracle.com/en/middleware/developer-tools/forms/12.2.1.4/working-forms/deploying-applications.html" target="_blank" rel="noreferrer noopener">Oracle Forms 12.2.1.4 – Client Configurations, Java Web Start and FSAL</a></li>



<li><a href="https://docs.oracle.com/en/middleware/developer-tools/forms/14.1.2/working-forms/oracle-forms-standalone-launcher.html" target="_blank" rel="noreferrer noopener">Oracle Forms 14.1.2 – Forms Standalone Launcher</a></li>



<li><a href="https://docs.oracle.com/cd/G29095_01/developer-tools/forms/14.1.2/working-forms/working-oracle-forms.pdf" target="_blank" rel="noreferrer noopener">Oracle Forms 14.1.2 – Working with Oracle Forms</a></li>
</ul>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-forms-java-web-start-or-fsal/">Oracle Forms: Java Web Start or FSAL?</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-forms-java-web-start-or-fsal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Elastic Observability for Application Servers: From Monitoring to Troubleshooting Intelligence</title>
		<link>https://www.dbi-services.com/blog/elastic-observability-for-application-servers-from-monitoring-to-troubleshooting-intelligence/</link>
					<comments>https://www.dbi-services.com/blog/elastic-observability-for-application-servers-from-monitoring-to-troubleshooting-intelligence/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Fri, 14 Aug 2026 12:11:00 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[Elastic Stack]]></category>
		<category><![CDATA[JBoss EAP]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[WildFly]]></category>
		<category><![CDATA[Application Server]]></category>
		<category><![CDATA[elastic Stack]]></category>
		<category><![CDATA[observability]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=45515</guid>

					<description><![CDATA[<p>Application servers such as WebLogic, JBoss EAP, WildFly, Tomcat, and WebSphere still run critical business applications in many enterprise environments. However, they are often monitored like basic infrastructure components: CPU, memory, disk, process status, and sometimes port availability. This is useful, but it is not enough. An application server can be up, the JVM can [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/elastic-observability-for-application-servers-from-monitoring-to-troubleshooting-intelligence/">Elastic Observability for Application Servers: From Monitoring to Troubleshooting Intelligence</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Application servers such as WebLogic, JBoss EAP, WildFly, Tomcat, and WebSphere still run critical business applications in many enterprise environments.</p>



<p class="wp-block-paragraph">However, they are often monitored like basic infrastructure components: CPU, memory, disk, process status, and sometimes port availability. This is useful, but it is not enough.</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="559" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/08/Gemini_Generated_Image_uycsuuuycsuuuycs-1024x559.jpg" alt="" class="wp-image-46471" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/08/Gemini_Generated_Image_uycsuuuycsuuuycs-1024x559.jpg 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/08/Gemini_Generated_Image_uycsuuuycsuuuycs-300x164.jpg 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/08/Gemini_Generated_Image_uycsuuuycsuuuycs-768x419.jpg 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/08/Gemini_Generated_Image_uycsuuuycsuuuycs.jpg 1408w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">An application server can be up, the JVM can be running, and the port can respond, while users are already experiencing slow response times, blocked transactions, JDBC pool saturation, session issues, or intermittent application errors.</p>



<p class="wp-block-paragraph">This is where observability brings real value. The objective is not only to know whether the server is alive. The objective is to understand how the application behaves, where it is degraded, and what needs to be fixed first.</p>



<h2 id="h-application-servers-are-not-just-java-processes" class="wp-block-heading"><br>Application servers are not just Java processes</h2>



<p class="wp-block-paragraph">A common mistake is to monitor application servers as if they were simple JVMs.</p>



<p class="wp-block-paragraph">In reality, an application server is an execution platform. It manages applications, HTTP requests, sessions, datasources, connection pools, transactions, security, messaging, classloading, thread pools, integrations, and sometimes clustering.</p>



<p class="wp-block-paragraph">When an incident happens, the root cause is rarely visible from CPU and memory alone.</p>



<p class="wp-block-paragraph">A production issue can come from:</p>



<ul class="wp-block-list">
<li>a saturated JDBC pool,</li>



<li>slow database queries,</li>



<li>blocked or waiting threads,</li>



<li>excessive garbage collection,</li>



<li>a failing backend service,</li>



<li>too many HTTP sessions,</li>



<li>deployment-related errors,</li>



<li>authentication or authorization failures,</li>



<li>JMS queue backlog.</li>
</ul>



<p class="wp-block-paragraph">Traditional monitoring can tell us that something is wrong. But it often cannot explain why.</p>



<p class="wp-block-paragraph">This is the gap <a href="https://www.elastic.co/observability" target="_blank" rel="noreferrer noopener">Elastic Observability</a> can help to close.</p>



<p class="wp-block-paragraph">Elastic Observability brings together logs, metrics, traces, and application performance data in a unified platform. Elastic documents its observability solution as combining logs, metrics, application traces, user experience data, and synthetic monitoring in order to provide visibility across applications and infrastructure.</p>



<p class="wp-block-paragraph">For application servers, this matters because troubleshooting is rarely based on one signal. A slow application transaction may require looking at the HTTP request, Java method execution, database call, connection pool behavior, JVM metrics, and server logs at the same time.</p>



<h2 id="h-the-real-problem-is-fragmented-troubleshooting" class="wp-block-heading">The real problem is fragmented troubleshooting</h2>



<p class="wp-block-paragraph">In many middleware environments, the data already exists but it is fragmented.</p>



<p class="wp-block-paragraph">Logs are on one server. JVM metrics are in another tool. Thread dumps are collected manually. Database metrics are owned by another team. Application errors are visible only to developers. Infrastructure alerts are managed by operations. APM, if present, may not be correlated with platform logs.</p>



<p class="wp-block-paragraph">During an incident, teams lose time switching between tools, comparing timestamps, grepping logs, opening server consoles, requesting database checks, and trying to reconstruct the sequence of events manually.</p>



<p class="wp-block-paragraph">This is especially true for application servers, because they sit between multiple domains:</p>



<ul class="wp-block-list">
<li>application code,</li>



<li>JVM configuration,</li>



<li>database,</li>



<li>messaging,</li>



<li>identity provider,</li>



<li>network,</li>



<li>external APIs,</li>



<li>container or VM platform.</li>
</ul>



<p class="wp-block-paragraph">The application server is often where the symptoms appear, but not always where the root cause is.</p>



<p class="wp-block-paragraph">A typical example is a slow application. The server is up. CPU is normal. Memory is acceptable. But users complain.</p>



<p class="wp-block-paragraph">Without observability, the investigation may start with generic checks: server status, JVM memory, recent logs, database availability, thread dumps, and maybe application team escalation.</p>



<p class="wp-block-paragraph">With proper observability, the investigation can start from the user-facing symptom:</p>



<ul class="wp-block-list">
<li>Which endpoint is slow?</li>



<li>Since when?</li>



<li>Is it all users or only one application flow?</li>



<li>Is the latency inside the Java application?</li>



<li>Is it caused by a database call?</li>



<li>Is the JDBC pool waiting?</li>



<li>Is an external HTTP call slow?</li>



<li>Did errors increase after a deployment?</li>



<li>Are logs showing the same transaction or correlation ID?</li>
</ul>



<p class="wp-block-paragraph">Elastic APM is designed to collect performance information such as response times, database queries, cache calls, external HTTP requests, and related application behavior, helping to identify performance issues more quickly.</p>



<p class="wp-block-paragraph">That changes the troubleshooting model. Instead of starting from the server and searching for a symptom, teams can start from the degraded service and follow the evidence.</p>



<h2 id="h-elastic-does-not-replace-middleware-expertise-it-amplifies-it" class="wp-block-heading">Elastic does not replace middleware expertise, it amplifies it</h2>



<p class="wp-block-paragraph">Elastic Observability is not magic, and it does not remove the need for application server expertise. An expert still needs to understand what matters in WebLogic, JBoss EAP, WildFly, Tomcat, or WebSphere.</p>



<p class="wp-block-paragraph">The value of Elastic is to make this expertise operational.</p>



<p class="wp-block-paragraph">Elastic supports both its own APM agents and OpenTelemetry-based collection. Elastic documentation states that OpenTelemetry can be used to collect application performance data in Elastic APM across serverless, self-managed, and hybrid deployments. This is important for enterprise environments because you may not want to lock instrumentation strategy to a single vendor-specific approach.</p>



<p class="wp-block-paragraph">In any case, a serious observability implementation should therefore start with an assessment, not with agent installation only.</p>



<p class="wp-block-paragraph">For application servers, I would typically define:</p>



<ul class="wp-block-list">
<li>which applications are critical,</li>



<li>which logs must be collected,</li>



<li>which JVM and OS metrics are required,</li>



<li>which application transactions need tracing,</li>



<li>whether APM agent or OpenTelemetry is the best option,</li>



<li>which technical indicators matter: response time, error rate, GC, threads, JDBC pool, JMS backlog, deployment events,</li>



<li>which business indicators matter: failed orders, failed logins, slow reports, blocked workflows,</li>



<li>which alerts are useful and which ones will create noise.</li>
</ul>



<p class="wp-block-paragraph">The goal is not to collect everything. The goal is to collect the right signals and correlate them.</p>



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



<p class="wp-block-paragraph">Application servers remain critical in enterprise IT, but traditional monitoring is no longer enough. Knowing that a JVM is running, CPU and memory are normal, or a port is open does not explain where a performance issue actually starts.</p>



<p class="wp-block-paragraph">For platforms such as WebLogic, JBoss EAP, WildFly, Tomcat, and WebSphere, real observability comes from correlating logs, metrics, traces, and application behavior.</p>



<p class="wp-block-paragraph">Elastic Observability provides this visibility, helping teams move from basic monitoring to faster and more effective troubleshooting.</p>



<p class="wp-block-paragraph">The real value, however, comes from combining the technology with the right expertise. O<strong>ur teams bring together strong</strong> <strong>Elastic, application-server, and database expertise</strong>, enabling us to implement observability solutions that collect the right signals, provide meaningful insights, and accelerate root cause analysis.</p>



<p class="wp-block-paragraph">Ultimately, observability is not about dashboards. It is about reducing blind spots, shortening incident resolution, and giving teams a shared view of production reality.</p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/elastic-observability-for-application-servers-from-monitoring-to-troubleshooting-intelligence/">Elastic Observability for Application Servers: From Monitoring to Troubleshooting Intelligence</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/elastic-observability-for-application-servers-from-monitoring-to-troubleshooting-intelligence/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Oracle Forms &#038; Reports 14.1.2 Patching Issue</title>
		<link>https://www.dbi-services.com/blog/oracle-forms-reports-14-1-2-patching-issue/</link>
					<comments>https://www.dbi-services.com/blog/oracle-forms-reports-14-1-2-patching-issue/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Mon, 01 Jun 2026 13:52:51 +0000</pubDate>
				<category><![CDATA[Application integration & Middleware]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[Forms and Reports server]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[patch]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=43677</guid>

					<description><![CDATA[<p>During a recent maintenance activity, I patched an Oracle Forms &#38; Reports 14.1.2 environment on Linux. The patching itself completed successfully, but immediately after the restart, Oracle Reports started failing. At first, the issue looked like a Java or JDK problem. After a full investigation, it turned out to be different. This blog explains the [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-forms-reports-14-1-2-patching-issue/">Oracle Forms &amp; Reports 14.1.2 Patching Issue</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">During a recent maintenance activity, I patched an <strong>Oracle Forms &amp; Reports 14.1.2</strong> environment on Linux. The patching itself completed successfully, but immediately after the restart, Oracle Reports started failing.</p>



<p class="wp-block-paragraph">At first, the issue looked like a Java or JDK problem. After a full investigation, it turned out to be different.</p>



<p class="wp-block-paragraph">This blog explains the full story from beginning to end.</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ChatGPT-Image-Mar-30-2026-05_14_18-PM-1024x683.png" alt="" class="wp-image-43684" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ChatGPT-Image-Mar-30-2026-05_14_18-PM-1024x683.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ChatGPT-Image-Mar-30-2026-05_14_18-PM-300x200.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ChatGPT-Image-Mar-30-2026-05_14_18-PM-768x512.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2026/03/ChatGPT-Image-Mar-30-2026-05_14_18-PM.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-introduction">Introduction</h2>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Initial Objective</span></strong></p>



<p class="wp-block-paragraph">The initial goal was simple:</p>



<ul class="wp-block-list">
<li>apply the latest Oracle Fusion Middleware patch bundle</li>



<li>restart the environment</li>



<li>validate Forms and Reports services</li>
</ul>



<p class="wp-block-paragraph">The patch installation completed without any obvious errors, and patch inventory looked clean.</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Issue after patching</span></strong></p>



<p class="wp-block-paragraph">Once the environment was started again, Oracle Reports was no longer stable.</p>



<p class="wp-block-paragraph">Symptoms:</p>



<ul class="wp-block-list">
<li>Reports engine failed to start correctly</li>



<li>Report execution was failing</li>



<li>Oracle Reports processes were crashing shortly after startup</li>



<li>The environment became unstable after patching</li>
</ul>



<p class="wp-block-paragraph">This immediately confirmed that the issue was introduced after the Oracle patching activity.</p>



<h2 class="wp-block-heading" id="h-investigation">Investigation</h2>



<p class="wp-block-paragraph">The first checks focused on the usual areas:</p>



<ul class="wp-block-list">
<li>WebLogic status</li>



<li>Reports server startup</li>



<li>Reports engine diagnostic logs</li>



<li>process status</li>



<li>environment variables</li>



<li>classpath and Java configuration</li>
</ul>



<p class="wp-block-paragraph">At this stage, the failure appeared during Reports engine initialization.</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Crash Analysis</span></strong></p>



<p class="wp-block-paragraph">A deeper review showed <strong>JVM crash files</strong> (<code>hs_err_pid</code>) being generated.</p>



<p class="wp-block-paragraph">The important finding was that the crash was not pointing to standard Java code.<br>It was occurring in the Oracle Reports native library:</p>



<ul class="wp-block-list">
<li><code><em>librw.so</em></code></li>



<li>function around <code><em>kguinit</em></code></li>
</ul>



<p class="wp-block-paragraph">This was an important clue because it suggested the problem was not a normal Java exception, but a failure in Oracle Reports native components.</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">JDK Validation</span></strong></p>



<p class="wp-block-paragraph">Because the issue started after patching, one possible explanation was a JDK problem.</p>



<p class="wp-block-paragraph">Several validations were performed:</p>



<ul class="wp-block-list">
<li>Checked active Java paths</li>



<li>Rolled back JDK version</li>



<li>Retested with the previous JDK</li>



<li>Compared behavior before and after JDK rollback</li>
</ul>



<p class="wp-block-paragraph">The same crash still happened even after JDK rollback.</p>



<p class="wp-block-paragraph">That confirmed the issue was <strong>not caused by the JDK itself</strong>.</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Rollback and Reproduction Test</span></strong></p>



<p class="wp-block-paragraph">To make sure the Oracle patch was really the trigger, I performed a controlled validation:</p>



<ul class="wp-block-list">
<li>Roll back Oracle patch</li>



<li>Start environment</li>



<li>Test Reports</li>



<li>Reapply Oracle patch</li>



<li>Retest Reports</li>
</ul>



<p class="wp-block-paragraph"><span style="text-decoration: underline">Before patch</span>: environment worked fine</p>



<p class="wp-block-paragraph"><span style="text-decoration: underline">After patch</span>: issue was reproduced again.</p>



<p class="wp-block-paragraph">This confirmed that the problem was patch-related and reproducible.</p>



<p class="wp-block-paragraph"><strong><span style="text-decoration: underline">Real Root Cause Direction</span></strong></p>



<p class="wp-block-paragraph">After further analysis, it became clear that the problem was not just a startup configuration issue.</p>



<p class="wp-block-paragraph">The patch had left the Oracle Reports native layer in an inconsistent state, and the environment needed a <strong>relink</strong> of Oracle FMW Reports and related shared libraries. I already had the case in the past with older versions (11 and 12), which normally has been solved since (<a href="https://support.oracle.com/ic/builder/rt/customer_portal/live/webApps/customer-portal/?anchorId=&amp;documentId=KB104706&amp;page=sptemplate&amp;sptemplate=km-article" target="_blank" rel="noreferrer noopener">related Oracle KB</a>)!</p>



<p class="wp-block-paragraph">That explained why:</p>



<ul class="wp-block-list">
<li>Patching succeeded</li>



<li>Startup partially worked</li>



<li>But Reports engine crashed in native code</li>
</ul>



<h2 class="wp-block-heading" id="h-final-resolution">Final Resolution</h2>



<p class="wp-block-paragraph">The final resolution was to relink Oracle FMW Reports.</p>



<p class="wp-block-paragraph">First, the Reports environment was loaded:</p>



<pre class="wp-block-code"><code>cd $DOMAIN_HOME/reports/bin
. ./reports.sh</code></pre>



<p class="wp-block-paragraph">Then the Oracle Reports libraries and binaries were rebuilt:</p>



<pre class="wp-block-code"><code>cd $ORACLE_HOME/reports/lib
make -f ins_reports.mk install</code></pre>



<p class="wp-block-paragraph">This recreated and relinked key Reports components such as:</p>



<ul class="wp-block-list">
<li><code>librw.so</code></li>



<li><code>librwu.so</code></li>



<li><code>rwserver</code></li>



<li><code>rwrun</code></li>



<li><code>rwclient</code></li>



<li><code>rwbuilder</code></li>



<li><code>rwconverter</code></li>



<li><code>rwcgi</code></li>



<li><code>rwproxy</code></li>



<li><code>rwrqv</code></li>
</ul>



<p class="wp-block-paragraph">After that, the Oracle client shared libraries were rebuilt as well:</p>



<pre class="wp-block-code"><code>cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk client_sharedlib</code></pre>



<p class="wp-block-paragraph">This regenerated the Oracle client shared libraries and symbolic links required by the middleware binaries.</p>



<p class="wp-block-paragraph">After the relink activity:</p>



<ul class="wp-block-list">
<li>Oracle Reports started correctly</li>



<li>the engine no longer crashed</li>



<li>report execution worked again</li>



<li>the patched environment became stable</li>
</ul>



<p class="wp-block-paragraph">So the environment could remain patched and operational, without needing to stay rolled back.</p>



<h2 class="wp-block-heading" id="h-lessons-learned-and-key-takeaway">Lessons Learned and key takeaway</h2>



<p class="wp-block-paragraph">This case was a good reminder that post-patching issues are not always caused by:</p>



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



<li>Classpath</li>



<li>Managed server configuration</li>



<li>OS changes</li>
</ul>



<p class="wp-block-paragraph">Sometimes the real issue is lower-level and sits in:</p>



<ul class="wp-block-list">
<li>Oracle native binaries</li>



<li>Shared libraries</li>



<li>Incomplete or inconsistent linking after patching</li>
</ul>



<p class="wp-block-paragraph">So, please note that when Oracle Reports crashes inside <code>librw.so</code> after patching, and rollback proves the patch introduced the issue, a <strong>relink of Reports and Oracle client shared libraries</strong> should be considered as a serious corrective action.</p>



<p class="wp-block-paragraph"><a href="https://www.dbi-services.com/blog/" target="_blank" rel="noreferrer noopener">Read more blogs</a></p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/oracle-forms-reports-14-1-2-patching-issue/">Oracle Forms &amp; Reports 14.1.2 Patching Issue</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-forms-reports-14-1-2-patching-issue/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WebLogic 14 &#038; Elastic Stack: From Metrics to Predictive Insights</title>
		<link>https://www.dbi-services.com/blog/weblogic-14-elastic-stack-from-metrics-to-predictive-insights/</link>
					<comments>https://www.dbi-services.com/blog/weblogic-14-elastic-stack-from-metrics-to-predictive-insights/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Fri, 20 Feb 2026 09:21:39 +0000</pubDate>
				<category><![CDATA[Elastic Stack]]></category>
		<category><![CDATA[WebLogic]]></category>
		<category><![CDATA[elastic Stack]]></category>
		<category><![CDATA[Monitoring]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=40353</guid>

					<description><![CDATA[<p>Oracle WebLogic Server continues to be a backbone for enterprise Java applications. With version 14, it brings improved Java compatibility, stronger security defaults, and better clustering. But while the platform is robust, monitoring it effectively remains a challenge. Introduction Within WebLogic 14, out-of-the-box tools such as the Remote Console and WLST scripts provide some visibility, [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/weblogic-14-elastic-stack-from-metrics-to-predictive-insights/">WebLogic 14 &amp; Elastic Stack: From Metrics to Predictive Insights</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Oracle WebLogic Server continues to be a backbone for enterprise Java applications. With version 14, it brings improved Java compatibility, stronger security defaults, and better clustering. But while the platform is robust, monitoring it effectively remains a challenge.</p>



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



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/09/Blog-WLS14-Elastic-Stack1-1024x683.png" alt="" class="wp-image-40561" srcset="https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/09/Blog-WLS14-Elastic-Stack1-1024x683.png 1024w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/09/Blog-WLS14-Elastic-Stack1-300x200.png 300w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/09/Blog-WLS14-Elastic-Stack1-768x512.png 768w, https://www.dbi-services.com/blog/wp-content/uploads/sites/2/2025/09/Blog-WLS14-Elastic-Stack1.png 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="h-introduction">Introduction</h2>



<p class="wp-block-paragraph">Within WebLogic 14, out-of-the-box tools such as the Remote Console and WLST scripts provide some visibility, but they are limited when it comes to real-time metrics, historical analysis, or predictive monitoring.</p>



<p class="wp-block-paragraph">This is where the <a href="https://www.elastic.co/">Elastic</a> Stack (Elasticsearch, Logstash, Beats, Elastic Agent, Kibana, and Elastic Machine Learning) delivers real value. By integrating WebLogic 14 logs, traces and metrics with Elastic Stack, you can build a unified platform that provides:</p>



<ul class="wp-block-list">
<li>Real-time observability of servers, threads, JDBC pools, and JVM health.</li>



<li>Powerful visualization and analysis in Kibana.</li>



<li>Predictive monitoring through anomaly detection and forecasting.</li>
</ul>



<p class="wp-block-paragraph">In this blog, we’ll walk through the integration of metrics step by step.</p>



<h2 class="wp-block-heading" id="h-step-1-export-weblogic-14-metrics">Step 1: Export WebLogic 14 Metrics</h2>



<p class="wp-block-paragraph">WebLogic does not natively expose metrics in formats suitable for Elastic or Prometheus. The solution is the WebLogic Monitoring Exporter, which translates JMX metrics into Prometheus-style output.</p>



<p class="wp-block-paragraph">Download the exporter:</p>



<pre class="wp-block-code"><code>wget https://github.com/oracle/weblogic-monitoring-exporter/releases/download/v2.3.0/weblogic-monitoring-exporter.jar
</code></pre>



<p class="wp-block-paragraph">Configure it (<code>config.yaml</code>):</p>



<pre class="wp-block-code"><code>domains:
  - name: mydomain
    url: t3://localhost:7001
    username: monitoruser
    password: XXXXXXXXXX
    metrics:
      - name: ServerHealth
      - name: ThreadPool
      - name: JDBCConnectionPool
      - name: JVMRuntime</code></pre>



<p class="wp-block-paragraph">Start the exporter:</p>



<pre class="wp-block-code"><code>java -jar weblogic-monitoring-exporter.jar --config=config.yaml</code></pre>



<p class="wp-block-paragraph">Verify metrics are exposed at:</p>



<pre class="wp-block-code"><code>http:&#047;&#047;localhost:8080/metrics</code></pre>



<h2 class="wp-block-heading" id="h-step-2-collect-metrics-with-metricbeat">Step 2: Collect Metrics with Metricbeat</h2>



<p class="wp-block-paragraph">Elastic provides Metricbeat with a Prometheus module, making it easy to scrape WebLogic exporter metrics and send them to Elasticsearch.</p>



<p class="wp-block-paragraph">Enable and configure the module:</p>



<pre class="wp-block-code"><code>metricbeat modules enable prometheus</code></pre>



<p class="wp-block-paragraph">prometheus.yml configuration:</p>



<pre class="wp-block-code"><code>- module: prometheus
  period: 10s
  hosts: &#091;"http://localhost:8080"]
  metrics_path: /metrics</code></pre>



<p class="wp-block-paragraph">Start Metricbeat:</p>



<pre class="wp-block-code"><code>sudo metricbeat setup
sudo service metricbeat start</code></pre>



<p class="wp-block-paragraph">Now WebLogic metrics are flowing into Elasticsearch.</p>



<h2 class="wp-block-heading" id="h-step-3-collect-weblogic-logs-with-filebeat-or-elastic-agent">Step 3: Collect WebLogic Logs with Filebeat or Elastic Agent</h2>



<p class="wp-block-paragraph">Metrics give you system health, but logs provide context. To correlate performance issues with application errors, you should ingest WebLogic logs into Elasticsearch.</p>



<h3 class="wp-block-heading">Option A: Using Filebeat</h3>



<p class="wp-block-paragraph">Install and configure Filebeat on the WebLogic server.</p>



<p class="wp-block-paragraph">Example configuration (<code>filebeat.yml</code>):</p>



<pre class="wp-block-code"><code>filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - /u02/app/weblogic/domains/mydomain/servers/*/logs/*.log
    fields:
      application: weblogic
    multiline.pattern: '^\&lt;'
    multiline.negate: true
    multiline.match: after

output.elasticsearch:
  hosts: &#091;"http://localhost:9200"]

And start Filebeat.</code></pre>



<h3 class="wp-block-heading" id="h-option-b-using-elastic-agent-recommended">Option B: Using Elastic Agent (Recommended)</h3>



<p class="wp-block-paragraph">Elastic Agent simplifies deployment by combining logs, metrics, and security data collection into a single agent managed centrally via Kibana Fleet.</p>



<p class="wp-block-paragraph">Steps:</p>



<ol class="wp-block-list">
<li>Enroll the agent from Kibana &#8211; Fleet.</li>



<li>Attach the System + Custom Log integration.</li>



<li>Configure the WebLogic log path.</li>



<li>Deploy the agent on your WebLogic server.</li>
</ol>



<p class="wp-block-paragraph">This approach reduces operational overhead and centralizes configuration.</p>



<h1 class="wp-block-heading" id="h-next-steps-amp-conclusion">Next steps &amp; Conclusion</h1>



<p class="wp-block-paragraph">Next steps:</p>



<ul class="wp-block-list">
<li>Build Observability Dashboards in Kibana</li>



<li>Add APM for Transaction-Level Visibility</li>



<li>Enable Machine Learning for Predictive Monitoring</li>



<li>Configure Alerts</li>
</ul>



<p class="wp-block-paragraph">While WebLogic 14 provides essential administrative tooling, it does not offer full observability capabilities out of the box.</p>



<p class="wp-block-paragraph">By integrating it with the Elastic Stack, you gain:</p>



<ul class="wp-block-list">
<li>Real-time operational insight</li>



<li>Deep log and metric correlation</li>



<li>Predictive monitoring with machine learning</li>



<li>Actionable alerting</li>



<li>Transaction-level visibility</li>
</ul>



<p class="wp-block-paragraph">This approach scales from a single WebLogic instance to enterprise clusters and hybrid cloud deployments.</p>



<p class="wp-block-paragraph">In short: you move from reactive troubleshooting to proactive performance management.</p>



<p class="wp-block-paragraph"><a href="https://www.dbi-services.com/blog/category/elastic-stack/" target="_blank" rel="noreferrer noopener">See my Elastic blogs</a>.</p>



<p class="wp-block-paragraph"></p>
<p>L’article <a href="https://www.dbi-services.com/blog/weblogic-14-elastic-stack-from-metrics-to-predictive-insights/">WebLogic 14 &amp; Elastic Stack: From Metrics to Predictive Insights</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/weblogic-14-elastic-stack-from-metrics-to-predictive-insights/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JBoss EAP &#8211; Credential Stores: from optional best practice to mandatory security baseline</title>
		<link>https://www.dbi-services.com/blog/jboss-eap-credential-stores-from-optional-best-practice-to-mandatory-security-baseline/</link>
					<comments>https://www.dbi-services.com/blog/jboss-eap-credential-stores-from-optional-best-practice-to-mandatory-security-baseline/#respond</comments>
		
		<dc:creator><![CDATA[David Diab]]></dc:creator>
		<pubDate>Thu, 19 Feb 2026 16:49:44 +0000</pubDate>
				<category><![CDATA[JBoss EAP]]></category>
		<category><![CDATA[Security]]></category>
		<guid isPermaLink="false">https://www.dbi-services.com/blog/?p=42501</guid>

					<description><![CDATA[<p>One of the most impactful (and often underestimated) differences between JBoss EAP 7.4 and JBoss EAP 8 is how credentials are handled. This is not just a documentation tweak or a recommendation shift. It is a hard security enforcement change driven by modern platform standards and compliance expectations from Red Hat. If you remember only [&#8230;]</p>
<p>L’article <a href="https://www.dbi-services.com/blog/jboss-eap-credential-stores-from-optional-best-practice-to-mandatory-security-baseline/">JBoss EAP &#8211; Credential Stores: from optional best practice to mandatory security baseline</a> est apparu en premier sur <a href="https://www.dbi-services.com/blog">dbi Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">One of the most impactful (and often underestimated) differences between JBoss EAP 7.4 and JBoss EAP 8 is how credentials are handled.</p>



<p class="wp-block-paragraph">This is not just a documentation tweak or a recommendation shift. It is a hard security enforcement change driven by modern platform standards and compliance expectations from Red Hat.</p>



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



<p class="wp-block-paragraph">If you remember only one thing from this article, remember this:</p>



<ul class="wp-block-list">
<li>JBoss EAP 7.4 allows credentials to be defined in multiple ways, including clear text.</li>



<li>JBoss EAP 8 forces the use of Credential Stores for sensitive resources such as datasources.</li>
</ul>



<h2 class="wp-block-heading" id="h-jboss-eap-7-4-credential-stores-were-optional"><strong>JBoss EAP 7.4: Credential Stores were OPTIONAL</strong></h2>



<ol class="wp-block-list">
<li></li>
</ol>



<p class="wp-block-paragraph">In EAP 7.4, Elytron credential stores were already available and recommended, but not enforced.</p>



<p class="wp-block-paragraph">All of the following were valid and supported:</p>



<ul class="wp-block-list">
<li>Clear-text passwords in standalone.xml</li>



<li>Encrypted expressions</li>



<li>Elytron credential-store</li>



<li>Legacy vault-based approaches (deprecated, but still functional)</li>
</ul>



<p class="wp-block-paragraph">A datasource like this was perfectly valid in 7.4:</p>



<pre class="wp-block-code"><code>&lt;datasource jndi-name="java:/jdbc/MyDS" pool-name="MyDS"&gt;
    &lt;connection-url&gt;jdbc:postgresql://db:5432/app&lt;/connection-url&gt;
    &lt;user-name&gt;app&lt;/user-name&gt;
    &lt;password&gt;secret123&lt;/password&gt;
&lt;/datasource&gt;</code></pre>



<h2 class="wp-block-heading" id="h-jboss-eap-8-credential-stores-are-effectively-mandatory"><strong>JBoss EAP 8: Credential Stores are EFFECTIVELY MANDATORY</strong></h2>



<p class="wp-block-paragraph">With JBoss EAP 8, Red Hat made a clear and intentional decision, sensitive credentials must no longer be stored directly in configuration files.</p>



<p class="wp-block-paragraph">What changed in practice:</p>



<ul class="wp-block-list">
<li>The element for datasources is no longer the supported approach</li>



<li>Datasources are expected to use credential-reference</li>



<li>Elytron is no longer just the default security framework, it is the only one</li>
</ul>



<p class="wp-block-paragraph">A valid datasource configuration in EAP 8 looks like this:</p>



<pre class="wp-block-code"><code>&lt;datasource jndi-name="java:/jdbc/MyDS" pool-name="MyDS"&gt;
    &lt;connection-url&gt;jdbc:postgresql://db:5432/app&lt;/connection-url&gt;
    &lt;user-name&gt;app&lt;/user-name&gt;
    &lt;credential-reference store="cs-db" alias="db-password"/&gt;
&lt;/datasource&gt;</code></pre>



<h2 class="wp-block-heading" id="h-why-this-enforcement-exists-in-eap-8">Why this enforcement exists in EAP 8</h2>



<p class="wp-block-paragraph">This change is not accidental or cosmetic. It aligns EAP with:</p>



<ul class="wp-block-list">
<li>OpenShift and container-native security expectations</li>



<li>Compliance-driven environments (CIS, ISO, regulated industries)</li>



<li>Modern “secrets management” practices</li>
</ul>



<h2 class="wp-block-heading" id="h-forced-does-not-mean-hard">“Forced” does not mean “hard”</h2>



<p class="wp-block-paragraph">A common fear when moving to EAP 8 is: “Now everything is complicated” because of security!</p>



<p class="wp-block-paragraph">In reality, the operational model becomes cleaner and more consistent.</p>



<p class="wp-block-paragraph">Typical pattern:</p>



<ol class="wp-block-list">
<li>Create one credential store</li>



<li>Add secrets once</li>



<li>Reference them everywhere</li>
</ol>



<p class="wp-block-paragraph">CLI example:</p>



<pre class="wp-block-code"><code>/subsystem=elytron/credential-store=cs-db:add(
  path=cs-db.jceks,
  relative-to=jboss.server.config.dir,
  credential-reference={clear-text=changeit}
)

/subsystem=elytron/credential-store=cs-db:add-alias(
  alias=db-password,
  secret-value=secret123
)
</code></pre>



<p class="wp-block-paragraph">From that point on:</p>



<ul class="wp-block-list">
<li>No passwords in XML</li>



<li>No passwords in Git</li>



<li>No accidental leaks</li>
</ul>



<h2 class="wp-block-heading" id="h-migration-impact-where-most-upgrades-fail">Migration impact: where most upgrades fail</h2>



<p class="wp-block-paragraph">When upgrading from EAP 7.4 to EAP 8, you must:</p>



<ul class="wp-block-list">
<li>Identify all clear-text credentials</li>



<li>Move them into credential stores</li>



<li>Replace &lt;password&gt; with &lt;credential-reference&gt;</li>
</ul>



<p class="wp-block-paragraph">This step is mandatory in EAP 8.</p>



<p class="wp-block-paragraph">Good news: </p>



<ul class="wp-block-list">
<li>If you already used credential stores in 7.4: migration is straightforward</li>



<li>If you didn’t: EAP 8 forces a long-overdue cleanup <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<p class="wp-block-paragraph">If you’re planning a move to JBoss EAP 8, I can help you get there safely.<br>From credential-store migration to full security hardening, I support organizations in turning a mandatory change into a controlled, successful upgrade.</p>
<p>L’article <a href="https://www.dbi-services.com/blog/jboss-eap-credential-stores-from-optional-best-practice-to-mandatory-security-baseline/">JBoss EAP &#8211; Credential Stores: from optional best practice to mandatory security baseline</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/jboss-eap-credential-stores-from-optional-best-practice-to-mandatory-security-baseline/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-10-18 16:07:16 by W3 Total Cache
-->