Saturday, 2 August 2025

Oracle EBS R12.1.3 – Application Level Patching Guide

 

 Oracle EBS R12.1.3 – Application Level Patching Guide

Overview

This guide details the step-by-step procedure for applying application-level patches in Oracle E-Business Suite Release 12.1.3. This process ensures the EBS application is updated without disrupting services or compromising system stability.


Prerequisites

Before you begin:

  • Ensure the Database and Listener are up and running.

  • Backup your EBS environment (DB, APP, and customizations if applicable).

  • Set necessary environment variables ($APPL_TOP, $AD_TOP, $ADMIN_SCRIPT_HOME, etc.).

  • Identify patch number and download it from My Oracle Support (MOS).


 Step 1: Stop Application Services

Navigate to your administration scripts directory:

cd $ADMIN_SCRIPT_HOME
./adstpall.sh apps/<apps_password>

🔸 Ensure the database and listener remain UP.


Step 2: Enable Maintenance Mode

Maintenance mode prevents users from logging in during patching.

cd $AD_TOP/12.0.0/bin
./adadmin

Follow the prompts:

  1. Enter log file name (e.g., 111.log)

  2. Choose:

    5. Change Maintenance Mode
    1. Enable Maintenance Mode
    

You’ll see:

Successfully enabled Maintenance Mode.

Confirm it's enabled before proceeding.


 Step 3: Apply the Patch

  1. Go to the patch directory:

    cd $AD_TOP/bin
    ./adpatch
    
  2. When prompted:

    • Directory: /u01/oracle/apps/patches/dev/8919491

    • Driver file: u18898449.drv

AutoPatch will apply the patch and update the necessary files and database objects.


Step 4: Disable Maintenance Mode

Once the patch is applied:

./adadmin

Then:

5. Change Maintenance Mode
2. Disable Maintenance Mode

Step 5: Start Application Services

cd $ADMIN_SCRIPT_HOME
./adstrtal.sh apps/<apps_password>

 Step 6: Verify Patch Level

Check current product patch levels:

SELECT PATCH_LEVEL
FROM FND_PRODUCT_INSTALLATIONS
WHERE PATCH_LEVEL LIKE 'R12%';

Example:

R12.PJM.B.3
R12.PJI.B.3

Check AD code level:

SELECT PATCH_LEVEL
FROM FND_PRODUCT_INSTALLATIONS
WHERE PATCH_LEVEL LIKE 'R12.AD%';

Expected:

R12.AD.B.8

Check specific patch applied:

SELECT ad_patch.is_patch_applied('R12', -1, <PATCH_NUMBER>) FROM dual;

-- Example:
SELECT ad_patch.is_patch_applied('R12', -1, 32824367) FROM dual;

SQL Patch Registry:

SELECT * FROM dba_registry_sqlpatch WHERE patch_id = '22322938';

Additional Patch Object Verification

To verify if specific objects are updated:

strings -a $INV_TOP/forms/US/POXWPA5B.pls | grep '$Header'
find $PO_TOP -name "POXWPA5B.pls"
grep -i "\$Header" $PO_TOP/patch/115/sql/POXWPA5B.pls

Check patch logs:

cd $APPL_TOP/admin/$TWO_TASK/log

 Optional: XDF Patch Application (when needed)

Some patches require XDF (XML Data Fix) application.

export AD_APPS_JDBC_URL="(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)
(HOST=osdcebsdb.ebsdb.prodebs.oraclevcn.com)(PORT=1521)))(CONNECT_DATA=(SID=EBS)))"

java oracle.apps.fnd.odf2.FndXdfCmp applsys afteraa apps afteraa 
thin osdcebsdb.ebsdb.prodebs.oraclevcn.com:1521:EBS index 
$FND_TOP/patch/115/xdf/wf_directory_partitions.xdf $FND_TOP/patch/115/xdf/xsl changedb=n

Or use admsi.pl for XDF-based instructions:

perl $AD_TOP/bin/admsi.pl -patch_top=/home/oracle/PATCH/33513708 -appspass=<apps_password>

 Summary

Step Task
1 Stop App Tier
2 Enable Maintenance Mode
3 Apply Patch using adpatch
4 Disable Maintenance Mode
5 Start Services
6 Verify Patch Levels

 Notes

  • Always test patches in a non-production instance first.

  • Keep the patch logs and adpatch logs for audit and rollback reference.

  • Use admsi.pl and FndXdfCmp only when directed by Oracle patch documentation.



No comments: