<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Prathap Reddy</title>
    <description>The latest articles on DEV Community by Prathap Reddy (@prathap_reddy).</description>
    <link>https://dev.to/prathap_reddy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4084953%2Fbf31da43-6c07-4b18-8c6e-e08158ff90de.png</url>
      <title>DEV Community: Prathap Reddy</title>
      <link>https://dev.to/prathap_reddy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/prathap_reddy"/>
    <language>en</language>
    <item>
      <title>Technical post idea: WebLogic — High CPU Troubleshooting</title>
      <dc:creator>Prathap Reddy</dc:creator>
      <pubDate>Wed, 16 Sep 2026 03:05:48 +0000</pubDate>
      <link>https://dev.to/prathap_reddy/technical-post-idea-weblogic-high-cpu-troubleshooting-3mgb</link>
      <guid>https://dev.to/prathap_reddy/technical-post-idea-weblogic-high-cpu-troubleshooting-3mgb</guid>
      <description>&lt;p&gt;🚨 &lt;strong&gt;Oracle WebLogic Server: How I Approach a High CPU Issue&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A high CPU alert on a WebLogic server doesn't always mean the JVM itself is the problem.&lt;/p&gt;

&lt;p&gt;A structured troubleshooting approach can help identify the actual source.&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;1. Check OS-level CPU&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start by identifying which process is consuming CPU:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;top&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;p&gt;&lt;code&gt;ps -ef | grep java&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Don't immediately restart the server. First identify the process and PID.&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;2. Identify the WebLogic JVM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the Java PID is identified, verify:&lt;/p&gt;

&lt;p&gt;• Which Managed Server is using the JVM&lt;br&gt;
• JVM heap configuration&lt;br&gt;
• Number of threads&lt;br&gt;
• GC activity&lt;br&gt;
• Application workload&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;3. Check WebLogic Thread Activity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;p&gt;• Stuck threads&lt;br&gt;
• Excessive thread usage&lt;br&gt;
• Long-running requests&lt;br&gt;
• Connection pool issues&lt;br&gt;
• Repeated application requests&lt;/p&gt;

&lt;p&gt;The WebLogic Administration Console and server logs can provide useful clues.&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;4. Take Thread Dumps&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For CPU-related issues, thread dumps can help identify what the JVM threads are actually doing.&lt;/p&gt;

&lt;p&gt;Take multiple thread dumps at intervals rather than relying on a single snapshot.&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;jstack &amp;lt;PID&amp;gt; &amp;gt; threaddump1.txt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Then compare the dumps to identify threads that remain active.&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;5. Check Garbage Collection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;High CPU can also be associated with excessive GC activity.&lt;/p&gt;

&lt;p&gt;Review:&lt;/p&gt;

&lt;p&gt;• Young GC&lt;br&gt;
• Full GC&lt;br&gt;
• Heap utilization&lt;br&gt;
• GC frequency&lt;br&gt;
• Pause times&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;6. Check Application-Level Processes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sometimes the WebLogic JVM is only where the symptom appears.&lt;/p&gt;

&lt;p&gt;The underlying cause may be:&lt;/p&gt;

&lt;p&gt;➡️ Application code&lt;br&gt;
➡️ Infinite/repeated processing&lt;br&gt;
➡️ Database calls&lt;br&gt;
➡️ External service calls&lt;br&gt;
➡️ Incorrect configuration&lt;br&gt;
➡️ Memory/GC pressure&lt;/p&gt;

&lt;p&gt;🔹 &lt;strong&gt;7. Don't Treat Restart as the Root-Cause Fix&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Restarting the Managed Server may temporarily reduce CPU, but it doesn't explain why the CPU increased.&lt;/p&gt;

&lt;p&gt;A better approach is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alert → Identify PID → Analyze threads → Check GC → Review logs → Identify root cause → Apply fix → Monitor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This approach helps convert a production incident from a "restart and recover" activity into a proper troubleshooting exercise.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Key takeaway:&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;High CPU is a symptom. The goal is to identify the workload or thread causing it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What other WebLogic troubleshooting topics would you like to see?&lt;/p&gt;

&lt;h1&gt;
  
  
  Oracle #WebLogic #OracleWebLogic #Middleware #Java #JVM #Troubleshooting #ProductionSupport #OracleTechnology #DevOps
&lt;/h1&gt;

</description>
      <category>debugging</category>
      <category>devops</category>
      <category>java</category>
      <category>performance</category>
    </item>
    <item>
      <title>Oracle Forms &amp; Reports 12.2.1.4 to 12.2.1.19 Upgrade: Post-Upgrade Issues, Missing Files, and Troubleshooting Lessons</title>
      <dc:creator>Prathap Reddy</dc:creator>
      <pubDate>Sun, 06 Sep 2026 14:22:04 +0000</pubDate>
      <link>https://dev.to/prathap_reddy/oracle-forms-reports-12214-to-122119-upgrade-post-upgrade-issues-missing-files-and-1bij</link>
      <guid>https://dev.to/prathap_reddy/oracle-forms-reports-12214-to-122119-upgrade-post-upgrade-issues-missing-files-and-1bij</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Oracle Forms and Reports upgrades are often considered complete once the new Oracle Home, WebLogic configuration, Forms services, and Reports services are successfully installed and started.&lt;/p&gt;

&lt;p&gt;However, in a real enterprise environment, the upgrade does not end when the servers come up successfully.&lt;/p&gt;

&lt;p&gt;The real challenge often begins during post-upgrade validation.&lt;/p&gt;

&lt;p&gt;Recently, while working on an Oracle Forms &amp;amp; Reports upgrade from 12.2.1.4 to 12.2.1.19, we encountered several issues after the upgrade:&lt;/p&gt;

&lt;p&gt;Forms application icons/images were missing.&lt;br&gt;
Some Reports were not accessible or were failing to run.&lt;br&gt;
OS-level and kernel compatibility issues required validation.&lt;br&gt;
Some supporting files and custom configurations were not available in the upgraded environment.&lt;br&gt;
Existing customizations from the previous environment needed to be compared and restored.&lt;/p&gt;

&lt;p&gt;The interesting part was that the core Forms and Reports services were running. The issue was not simply that the application was down.&lt;/p&gt;

&lt;p&gt;The problem was in the post-upgrade configuration, customizations, supporting files, and environment differences.&lt;/p&gt;

&lt;p&gt;This blog explains our troubleshooting approach and the key lessons learned.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The Upgrade Scenario&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The environment was upgraded from:&lt;/p&gt;

&lt;p&gt;Oracle Forms &amp;amp; Reports 12.2.1.4&lt;/p&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;p&gt;Oracle Forms &amp;amp; Reports 12.2.1.19&lt;/p&gt;

&lt;p&gt;At first, the upgraded environment appeared healthy:&lt;/p&gt;

&lt;p&gt;WebLogic was running.&lt;br&gt;
Forms services were running.&lt;br&gt;
Reports services were running.&lt;br&gt;
Application access was available.&lt;br&gt;
Basic functionality was working.&lt;/p&gt;

&lt;p&gt;But during application validation, we identified issues that were not immediately visible from the server startup status.&lt;/p&gt;

&lt;p&gt;This is an important lesson:&lt;/p&gt;

&lt;p&gt;A successful middleware startup does not necessarily mean a successful application upgrade.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Issue #1 – Forms Icons and Images Were Missing&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the first issues noticed after the upgrade was that some Forms application icons/images were not displayed correctly.&lt;/p&gt;

&lt;p&gt;The Forms application itself could be accessed, but certain visual resources were missing.&lt;/p&gt;

&lt;p&gt;This immediately raised several questions:&lt;/p&gt;

&lt;p&gt;Were the application resources migrated?&lt;br&gt;
Were custom JAR files copied?&lt;br&gt;
Was formsweb.cfg migrated correctly?&lt;br&gt;
Was Registry.dat customized?&lt;br&gt;
Were image/resource directories available?&lt;br&gt;
Were the correct paths configured?&lt;br&gt;
Were the required files available under the new Oracle Home or application deployment?&lt;/p&gt;

&lt;p&gt;Instead of assuming that the Forms installation was corrupted, we started comparing the old and new environments.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Comparing the Old and New Environments&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the most useful troubleshooting techniques during an upgrade is:&lt;/p&gt;

&lt;p&gt;Compare the working 12.2.1.4 environment with the upgraded 12.2.1.19 environment.&lt;/p&gt;

&lt;p&gt;Rather than looking only at the new environment, we treated the old environment as a reference point.&lt;/p&gt;

&lt;p&gt;We reviewed:&lt;/p&gt;

&lt;p&gt;Forms configuration&lt;br&gt;
formsweb.cfg&lt;br&gt;
default.env&lt;br&gt;
Registry.dat&lt;br&gt;
Application resources&lt;br&gt;
*.jar&lt;br&gt;
images&lt;br&gt;
icons&lt;br&gt;
custom resources&lt;br&gt;
application-specific files&lt;br&gt;
Forms directories&lt;/p&gt;

&lt;p&gt;We also reviewed the relevant Forms configuration and application directories to identify differences.&lt;/p&gt;

&lt;p&gt;This comparison helped us identify files and customizations that needed to be restored or merged into the upgraded environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Important Lesson – Do Not Blindly Copy Configuration Files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the biggest lessons from the troubleshooting process is that an upgrade should not be treated as:&lt;/p&gt;

&lt;p&gt;Old Oracle Home&lt;br&gt;
        ↓&lt;br&gt;
Copy everything&lt;br&gt;
        ↓&lt;br&gt;
New Oracle Home&lt;/p&gt;

&lt;p&gt;That approach can introduce new problems.&lt;/p&gt;

&lt;p&gt;Instead, the better approach is:&lt;/p&gt;

&lt;p&gt;12.2.1.4 Environment&lt;br&gt;
        ↓&lt;br&gt;
Identify customizations&lt;br&gt;
        ↓&lt;br&gt;
Compare with 12.2.1.19&lt;br&gt;
        ↓&lt;br&gt;
Validate compatibility&lt;br&gt;
        ↓&lt;br&gt;
Merge required configurations&lt;br&gt;
        ↓&lt;br&gt;
Test&lt;/p&gt;

&lt;p&gt;The goal is to migrate required customizations, not blindly overwrite the new configuration.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Issue #2 – Reports Were Not Accessible&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The second major issue was related to Oracle Reports.&lt;/p&gt;

&lt;p&gt;Some reports that were previously accessible were no longer working correctly after the upgrade.&lt;/p&gt;

&lt;p&gt;We therefore started investigating the Reports environment separately from Forms.&lt;/p&gt;

&lt;p&gt;The following areas became important:&lt;/p&gt;

&lt;p&gt;rwserver.conf&lt;br&gt;
rwnetwork.conf&lt;br&gt;
REPORTS_PATH&lt;br&gt;
Environment variables&lt;br&gt;
Reports Server configuration&lt;br&gt;
Reports Tools configuration&lt;br&gt;
Printer configuration&lt;br&gt;
Font configuration&lt;br&gt;
Report files&lt;br&gt;
TNS configuration&lt;br&gt;
Custom directories&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Reports Configuration Validation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Reports Server configuration was compared between the old and new environments.&lt;/p&gt;

&lt;p&gt;Particular attention was given to:&lt;/p&gt;

&lt;p&gt;rwserver.conf&lt;br&gt;
rwnetwork.conf&lt;/p&gt;

&lt;p&gt;We also reviewed the environment variables used by Reports.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;echo $ORACLE_HOME&lt;br&gt;
echo $PATH&lt;br&gt;
echo $TNS_ADMIN&lt;br&gt;
echo $REPORTS_PATH&lt;/p&gt;

&lt;p&gt;The objective was to determine whether the upgraded Reports Server had access to the same required resources as the previous environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;.prt Files – An Easily Overlooked Area&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another important area during our investigation was the Reports printer configuration.&lt;/p&gt;

&lt;p&gt;We found differences in the available .prt files between the environments.&lt;/p&gt;

&lt;p&gt;For example, the environment contained directories such as:&lt;/p&gt;

&lt;p&gt;$ORACLE_HOME/reports/printer&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;$ORACLE_HOME/reports/printers&lt;/p&gt;

&lt;p&gt;We compared the files available in these directories between the old and new environments.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;find $OLD_ORACLE_HOME/reports/printer -type f -name "*.prt" | sort&lt;/p&gt;

&lt;p&gt;and:&lt;/p&gt;

&lt;p&gt;find $NEW_ORACLE_HOME/reports/printer -type f -name "*.prt" | sort&lt;/p&gt;

&lt;p&gt;The same comparison can be performed for:&lt;/p&gt;

&lt;p&gt;$ORACLE_HOME/reports/printers&lt;/p&gt;

&lt;p&gt;This type of comparison is useful because printer-related configuration can be overlooked when focusing only on WebLogic, Forms and Reports server startup.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OS and Kernel Compatibility&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another area that should not be ignored during a Forms &amp;amp; Reports upgrade is the underlying operating system.&lt;/p&gt;

&lt;p&gt;Even if the middleware configuration looks correct, differences at the OS level can affect application behavior.&lt;/p&gt;

&lt;p&gt;We reviewed areas such as:&lt;/p&gt;

&lt;p&gt;OS version&lt;br&gt;
Kernel version&lt;br&gt;
Installed patches&lt;br&gt;
Shared libraries&lt;br&gt;
System dependencies&lt;br&gt;
Environment variables&lt;br&gt;
File permissions&lt;br&gt;
Services&lt;br&gt;
System-level configuration&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;uname -r&lt;/p&gt;

&lt;p&gt;can be used to identify the running kernel version.&lt;/p&gt;

&lt;p&gt;Additional OS package and library validation may also be required depending on the platform and Oracle certification requirements.&lt;/p&gt;

&lt;p&gt;The key point is:&lt;/p&gt;

&lt;p&gt;Middleware compatibility should always be evaluated together with the underlying OS and system libraries.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Finding the Missing Files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;At this stage, the most effective method was not to guess which file was missing.&lt;/p&gt;

&lt;p&gt;We followed a simple approach:&lt;/p&gt;

&lt;p&gt;Step 1 – Identify the failed functionality&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Missing Forms icon&lt;/p&gt;

&lt;p&gt;or:&lt;/p&gt;

&lt;p&gt;Report cannot be accessed&lt;br&gt;
Step 2 – Identify the resource required&lt;/p&gt;

&lt;p&gt;Determine which configuration, JAR, image, report, printer definition, environment variable, or system dependency is involved.&lt;/p&gt;

&lt;p&gt;Step 3 – Compare old and new environments&lt;br&gt;
12.2.1.4 → Working&lt;br&gt;
12.2.1.19 → Not working&lt;br&gt;
Step 4 – Identify the difference&lt;/p&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;p&gt;Missing file&lt;br&gt;
Different configuration&lt;br&gt;
Different path&lt;br&gt;
Missing customization&lt;br&gt;
Different permissions&lt;br&gt;
Missing library&lt;br&gt;
Different OS dependency&lt;br&gt;
Step 5 – Restore the required customization&lt;/p&gt;

&lt;p&gt;Only after validating the difference should the required file or configuration be added to the new environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Resolution&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After identifying the missing files/configurations, we restored the required resources into the upgraded environment.&lt;/p&gt;

&lt;p&gt;The environment was then restarted and application functionality was tested again.&lt;/p&gt;

&lt;p&gt;The result was positive:&lt;/p&gt;

&lt;p&gt;✅ Forms icons/images were displayed correctly.&lt;/p&gt;

&lt;p&gt;✅ Previously affected Reports became accessible.&lt;/p&gt;

&lt;p&gt;✅ The application functionality was restored.&lt;/p&gt;

&lt;p&gt;This demonstrated an important point:&lt;/p&gt;

&lt;p&gt;The upgrade itself was not necessarily the problem. The problem was the gap between the old customized environment and the new upgraded environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Recommended Post-Upgrade Validation Checklist&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After completing a Forms &amp;amp; Reports upgrade, I recommend validating the following areas.&lt;/p&gt;

&lt;p&gt;Forms&lt;br&gt;
✓ formsweb.cfg&lt;br&gt;
✓ default.env&lt;br&gt;
✓ Registry.dat&lt;br&gt;
✓ Custom JAR files&lt;br&gt;
✓ Application images/icons&lt;br&gt;
✓ Application resource directories&lt;br&gt;
✓ Forms templates&lt;br&gt;
✓ Environment variables&lt;br&gt;
✓ Application-specific configurations&lt;br&gt;
Reports&lt;br&gt;
✓ rwserver.conf&lt;br&gt;
✓ rwnetwork.conf&lt;br&gt;
✓ REPORTS_PATH&lt;br&gt;
✓ Reports Server configuration&lt;br&gt;
✓ Reports Tools configuration&lt;br&gt;
✓ RDF/REP/XML report locations&lt;br&gt;
✓ Printer configuration&lt;br&gt;
✓ .prt files&lt;br&gt;
✓ Font configuration&lt;br&gt;
✓ Destination configuration&lt;br&gt;
✓ Database connectivity&lt;br&gt;
✓ TNS configuration&lt;br&gt;
Operating System&lt;br&gt;
✓ OS version&lt;br&gt;
✓ Kernel version&lt;br&gt;
✓ Required patches&lt;br&gt;
✓ Shared libraries&lt;br&gt;
✓ System packages&lt;br&gt;
✓ File permissions&lt;br&gt;
✓ Mount points&lt;br&gt;
✓ Environment variables&lt;br&gt;
✓ System services&lt;br&gt;
✓ OS-level compatibility&lt;br&gt;
Application&lt;br&gt;
✓ Forms login&lt;br&gt;
✓ Forms navigation&lt;br&gt;
✓ Icons/images&lt;br&gt;
✓ LOVs&lt;br&gt;
✓ Attachments&lt;br&gt;
✓ Reports invocation&lt;br&gt;
✓ Report output&lt;br&gt;
✓ PDF generation&lt;br&gt;
✓ Printer functionality&lt;br&gt;
✓ Database connectivity&lt;br&gt;
✓ Custom integrations&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Old vs New Environment Comparison&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the best practices we took from this experience is to create an explicit comparison checklist before declaring the upgrade complete.&lt;/p&gt;

&lt;p&gt;Area    12.2.1.4    12.2.1.19   Validation&lt;br&gt;
Forms configuration Available   Compare Required&lt;br&gt;
formsweb.cfg    Customized  Compare Required&lt;br&gt;
default.env Customized  Compare Required&lt;br&gt;
Registry.dat    Customized  Compare Required&lt;br&gt;
Custom JARs Available   Verify  Required&lt;br&gt;
Images/icons    Available   Verify  Required&lt;br&gt;
Reports configuration   Available   Compare Required&lt;br&gt;
rwserver.conf   Customized  Compare Required&lt;br&gt;
.prt files  Available   Verify  Required&lt;br&gt;
REPORTS_PATH    Configured  Verify  Required&lt;br&gt;
OS kernel   Existing    Verify  Required&lt;br&gt;
Libraries   Existing    Verify  Required&lt;br&gt;
Customizations  Existing    Verify  Required&lt;/p&gt;

&lt;p&gt;This gives the upgrade team a much more reliable way to validate the environment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Key Lessons Learned&lt;/li&gt;
&lt;li&gt;Installation success ≠ application success&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;WebLogic, Forms and Reports services can all be running while application-level issues still exist.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Customizations are critical&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Enterprise Forms &amp;amp; Reports environments often contain years of custom configuration, JARs, images, printer definitions, environment variables and supporting files.&lt;/p&gt;

&lt;p&gt;These need to be identified before the upgrade.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Compare, don't guess&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The working environment is one of the most valuable troubleshooting references.&lt;/p&gt;

&lt;p&gt;A structured old-vs-new comparison can quickly reveal what changed.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Don't overwrite the new configuration blindly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The new Oracle version may contain important default configuration changes.&lt;/p&gt;

&lt;p&gt;Custom settings should be reviewed and merged carefully.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;OS-level validation matters&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Kernel versions, libraries, packages and system configuration can influence middleware behavior.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Post-upgrade testing must be functional&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Don't stop at:&lt;/p&gt;

&lt;p&gt;WebLogic = RUNNING&lt;br&gt;
Forms = RUNNING&lt;br&gt;
Reports = RUNNING&lt;/p&gt;

&lt;p&gt;Also test:&lt;/p&gt;

&lt;p&gt;Application → Forms → Icons → Navigation → Reports → Output → Printing&lt;br&gt;
Conclusion&lt;/p&gt;

&lt;p&gt;The upgrade from Oracle Forms &amp;amp; Reports 12.2.1.4 to 12.2.1.19 gave us an important practical lesson.&lt;/p&gt;

&lt;p&gt;A successful upgrade is not simply about installing the new Oracle version and starting the services.&lt;/p&gt;

&lt;p&gt;The real success criteria are:&lt;/p&gt;

&lt;p&gt;Configuration + Customizations + Application Resources + Reports + OS Compatibility + Functional Testing&lt;/p&gt;

&lt;p&gt;In our case, some required files and configurations were missing after the upgrade. By comparing the old and new environments, identifying the differences, and restoring the required resources, the affected Forms icons and Reports functionality started working again.&lt;/p&gt;

&lt;p&gt;For anyone planning a similar upgrade, I strongly recommend creating an old-vs-new configuration and file comparison checklist before and after the upgrade.&lt;/p&gt;

&lt;p&gt;That small step can save significant troubleshooting time.&lt;/p&gt;

&lt;p&gt;What has been your experience?&lt;/p&gt;

&lt;p&gt;Have you encountered any of these issues during an Oracle Forms &amp;amp; Reports upgrade?&lt;/p&gt;

&lt;p&gt;Missing Forms icons/images?&lt;br&gt;
Reports not accessible?&lt;br&gt;
Missing .prt files?&lt;br&gt;
Configuration/customization gaps?&lt;br&gt;
OS kernel or library compatibility issues?&lt;br&gt;
Missing JARs or application resources?&lt;/p&gt;

&lt;p&gt;I would love to hear your experience and learn what other commonly overlooked files or configurations should be included in a Forms &amp;amp; Reports upgrade checklist.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>career</category>
      <category>claude</category>
    </item>
    <item>
      <title>Connecting Google Gemini AI with Oracle APEX: My Hands-On Experience</title>
      <dc:creator>Prathap Reddy</dc:creator>
      <pubDate>Wed, 19 Aug 2026 12:18:16 +0000</pubDate>
      <link>https://dev.to/prathap_reddy/connecting-google-gemini-ai-with-oracle-apex-my-hands-on-experience-4pgp</link>
      <guid>https://dev.to/prathap_reddy/connecting-google-gemini-ai-with-oracle-apex-my-hands-on-experience-4pgp</guid>
      <description>&lt;p&gt;Recently, I started exploring the Generative AI capabilities available in Oracle APEX. As part of my learning, I wanted to see how easily I could connect an external AI model to APEX and test it in a real environment.&lt;/p&gt;

&lt;p&gt;For this experiment, I chose Google Gemini and configured it through the Generative AI Services available in Oracle APEX.&lt;/p&gt;

&lt;p&gt;The setup was quite straightforward, and I wanted to document the steps I followed and a few things I learned along the way.&lt;/p&gt;

&lt;p&gt;Why I Tried This&lt;/p&gt;

&lt;p&gt;I've been working with Oracle APEX and wanted to understand how AI can be brought into low-code application development.&lt;/p&gt;

&lt;p&gt;Instead of building a separate application or writing a custom integration from scratch, APEX provides configuration options for connecting to generative AI services.&lt;/p&gt;

&lt;p&gt;That made it a good opportunity for me to try the integration myself and understand what happens behind the scenes.&lt;/p&gt;

&lt;p&gt;What I Used&lt;/p&gt;

&lt;p&gt;For my setup, I used:&lt;/p&gt;

&lt;p&gt;Oracle APEX&lt;/p&gt;

&lt;p&gt;Google Gemini&lt;/p&gt;

&lt;p&gt;Gemini API key&lt;/p&gt;

&lt;p&gt;APEX Generative AI Services&lt;/p&gt;

&lt;p&gt;APEX Workspace Administrator access&lt;/p&gt;

&lt;p&gt;I also used my own APEX environment to test the configuration.&lt;/p&gt;

&lt;p&gt;Configuring Gemini in Oracle APEX&lt;/p&gt;

&lt;p&gt;I started by navigating to:&lt;/p&gt;

&lt;p&gt;Workspace Utilities → Generative AI Services → Create/Edit&lt;/p&gt;

&lt;p&gt;From there, I created a new Generative AI Service and selected Google Gemini as the AI provider.&lt;/p&gt;

&lt;p&gt;I gave the configuration a meaningful name so that it would be easy to identify later.&lt;/p&gt;

&lt;p&gt;Configuring the API Details&lt;/p&gt;

&lt;p&gt;The next step was configuring the Gemini API details.&lt;/p&gt;

&lt;p&gt;For the API endpoint, I used:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://generativelanguage.googleapis.com/v1beta" rel="noopener noreferrer"&gt;https://generativelanguage.googleapis.com/v1beta&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I then provided the required model information and configured the credentials.&lt;/p&gt;

&lt;p&gt;One thing I found useful here was that APEX provides the configuration directly from the UI, so I didn't have to write a separate REST integration just to establish the connection.&lt;/p&gt;

&lt;p&gt;Adding the Gemini API Key&lt;/p&gt;

&lt;p&gt;The next part was adding the Gemini API key.&lt;/p&gt;

&lt;p&gt;I enabled the option to create credentials and entered the API key generated for my Gemini environment.&lt;/p&gt;

&lt;p&gt;I also made sure that the API key had the required access for the Generative Language API.&lt;/p&gt;

&lt;p&gt;For security reasons, I would recommend never publishing your actual API key in screenshots, blog posts, GitHub repositories, or other public places.&lt;/p&gt;

&lt;p&gt;Enabling Gemini for APEX&lt;/p&gt;

&lt;p&gt;After configuring the credentials, I looked at the APEX settings.&lt;/p&gt;

&lt;p&gt;There are options such as:&lt;/p&gt;

&lt;p&gt;Used by App Builder&lt;/p&gt;

&lt;p&gt;Default for New Apps&lt;/p&gt;

&lt;p&gt;For my testing, I enabled the appropriate option so that the configured AI service could be used by APEX App Builder.&lt;/p&gt;

&lt;p&gt;This was one of the interesting parts of the setup because the integration is handled through the APEX configuration rather than requiring me to build the entire connection manually.&lt;/p&gt;

&lt;p&gt;Testing the Connection&lt;/p&gt;

&lt;p&gt;Before considering the configuration complete, I used the Test Connection option.&lt;/p&gt;

&lt;p&gt;I think this is an important step because it immediately tells you whether the basic configuration is working.&lt;/p&gt;

&lt;p&gt;If something goes wrong, I would first check:&lt;/p&gt;

&lt;p&gt;API key&lt;/p&gt;

&lt;p&gt;Model ID&lt;/p&gt;

&lt;p&gt;Base URL&lt;/p&gt;

&lt;p&gt;Endpoint URL&lt;/p&gt;

&lt;p&gt;Credentials configuration&lt;/p&gt;

&lt;p&gt;Network/connectivity&lt;/p&gt;

&lt;p&gt;Whether the selected model is supported by the configured APEX integration&lt;/p&gt;

&lt;p&gt;My Configuration Screen&lt;/p&gt;

&lt;p&gt;This is the configuration screen from my APEX environment:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmir3y7gwo93vxmwivc7k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmir3y7gwo93vxmwivc7k.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The screenshot shows the Gemini provider, API configuration, model information, credentials, and the App Builder settings.&lt;/p&gt;

&lt;p&gt;What I Learned&lt;/p&gt;

&lt;p&gt;The biggest takeaway for me was that connecting an AI service to APEX doesn't necessarily require a large amount of custom development.&lt;/p&gt;

&lt;p&gt;The configuration is largely handled through the APEX interface, which makes it easier to experiment with generative AI capabilities while continuing to work within a low-code environment.&lt;/p&gt;

&lt;p&gt;I also learned that small configuration details matter. The API key, model ID, endpoint, and credential settings all need to match the AI service being used.&lt;/p&gt;

&lt;p&gt;Where This Could Be Useful&lt;/p&gt;

&lt;p&gt;There are several areas where I think this type of integration could be useful in APEX applications:&lt;/p&gt;

&lt;p&gt;Generating application content&lt;/p&gt;

&lt;p&gt;Assisting developers during application development&lt;/p&gt;

&lt;p&gt;Natural-language interactions&lt;/p&gt;

&lt;p&gt;Generating SQL or application-related suggestions&lt;/p&gt;

&lt;p&gt;AI-assisted application development&lt;/p&gt;

&lt;p&gt;Building smarter business applications&lt;/p&gt;

&lt;p&gt;The actual use case will depend on the application and the AI capabilities being enabled.&lt;/p&gt;

&lt;p&gt;A Small Lesson From My Experiment&lt;/p&gt;

&lt;p&gt;One thing I would recommend to anyone trying this for the first time is don't immediately start troubleshooting the entire application when something doesn't work.&lt;/p&gt;

&lt;p&gt;Start with the connection itself.&lt;/p&gt;

&lt;p&gt;Check the API key, model, endpoint, credentials, and then use Test Connection.&lt;/p&gt;

&lt;p&gt;Once the basic connection works, move on to testing the AI features inside APEX.&lt;/p&gt;

&lt;p&gt;That approach makes troubleshooting much easier.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;This was a useful hands-on experiment for me because it helped me understand how Oracle APEX and Generative AI can work together.&lt;/p&gt;

&lt;p&gt;I'm still exploring what can be built with this integration, but I think the combination of low-code development and AI has a lot of potential.&lt;/p&gt;

&lt;p&gt;My next step is to move beyond the configuration and build an actual business use case with APEX and Gemini rather than just testing the connection.&lt;/p&gt;

&lt;p&gt;Have you tried integrating Gemini, OpenAI, or another LLM with Oracle APEX? I'd be interested to hear about your experience and what you built.&lt;/p&gt;

&lt;h1&gt;
  
  
  OracleAPEX #GeminiAI #Oracle #GenerativeAI #LowCode #AI #AppDevelopment
&lt;/h1&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Connecting Oracle APEX to Google Gemini AI: A Step-by-Step Guide</title>
      <dc:creator>Prathap Reddy</dc:creator>
      <pubDate>Wed, 19 Aug 2026 11:47:00 +0000</pubDate>
      <link>https://dev.to/prathap_reddy/connecting-oracle-apex-to-google-gemini-ai-a-step-by-step-guide-ahk</link>
      <guid>https://dev.to/prathap_reddy/connecting-oracle-apex-to-google-gemini-ai-a-step-by-step-guide-ahk</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;Oracle APEX has quietly made adding generative AI to low-code apps as simple as filling out a form. No middleware, no custom REST wrappers, no separate AI service to host. In this post, I'll walk through exactly how I connected Google Gemini to my APEX workspace using APEX's native Generative AI Services, and what it unlocks once it's set up.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;Most teams assume "adding AI" means weeks of integration work and a dedicated ML engineer. Oracle APEX flips that: plugging in a foundation model is now a configuration task, not an engineering project. Once connected, AI capabilities like Builder AI, natural language search, and AI-assisted page generation work automatically — across every app in your workspace.&lt;/p&gt;

&lt;p&gt;Prerequisites&lt;br&gt;
An Oracle APEX workspace ( tested on 26.1)&lt;br&gt;
A Google Gemini API key (Google AI Studio)&lt;br&gt;
Workspace admin access to configure Generative AI Services&lt;br&gt;
Step-by-step setup&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Navigate to Generative AI Services&lt;br&gt;
From Workspace Utilities → Generative AI Services → Create/Edit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set the AI Provider&lt;br&gt;
Choose Google Gemini from the AI Provider dropdown, and give it a name (e.g. "Gemini API Key").&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure the Base URL and Endpoint URL&lt;br&gt;
Both point to Gemini's API:&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://generativelanguage.googleapis.com/v1beta" rel="noopener noreferrer"&gt;https://generativelanguage.googleapis.com/v1beta&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Add credentials&lt;br&gt;
Toggle "Create Credentials" on, and paste in your Gemini API key. APEX stores this securely — you won't need to manage it in code anywhere.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable it for App Builder&lt;br&gt;
Toggle Used by App Builder and, optionally, Default for New Apps, so every new app in the workspace automatically uses Gemini.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test the connection&lt;br&gt;
Click Test Connection to confirm APEX can reach Gemini before saving.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6hm46qdssfqdvnznqdt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F6hm46qdssfqdvnznqdt8.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What this unlocks&lt;/p&gt;

&lt;p&gt;Once configured, several AI-powered features become available immediately:&lt;/p&gt;

&lt;p&gt;Builder AI — generate pages, forms, and reports from natural language descriptions&lt;br&gt;
AI-assisted natural language search in Interactive Reports&lt;br&gt;
AI-generated data models and content during app creation&lt;/p&gt;

&lt;p&gt;**Model version compatibility&lt;/p&gt;

&lt;p&gt;Not every Gemini model works out of the box with APEX's Generative AI Services. I found that Gemini Flash 3 and onward is what you need — earlier model versions either failed to respond correctly or weren't supported by APEX's integration layer. If you're setting this up and things aren't working, check your Model ID first before troubleshooting anything else.&lt;/p&gt;

&lt;p&gt;API key scope&lt;br&gt;
Make sure the API key you generate in Google AI Studio has access to the Generative Language API specifically — a key created for a different Google Cloud service won't authenticate correctly here.&lt;/p&gt;

&lt;p&gt;Test Connection is your friend&lt;/p&gt;

&lt;p&gt;Don't skip the Test Connection button before saving. It catches URL/endpoint mismatches and auth issues immediately, rather than surfacing as a vague error later inside Builder AI or natural language search.&lt;/p&gt;

&lt;p&gt;Takeaway&lt;/p&gt;

&lt;p&gt;Low-code and generative AI are converging faster than most people realize. If you're building on Oracle APEX and haven't tried wiring in a foundation model yet, it's a 10-minute setup that changes what your app builder can do.&lt;/p&gt;

&lt;p&gt;Have you connected an LLM into APEX or another low-code platform? I'd love to hear what you built.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gemini</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
