Sunday, May 17, 2026

Oracle EBS R12.2 — Applying CPU April 2026

Oracle EBS R12.2 — Applying the CPU April 2026 Application Patch

Your Complete Step-by-Step DBA Guide

📅 Released: 21 April 2026 | ✍ punitoracledba.blogspot.com | ⏱ 12 min read

⚠ CVSS 9.8 — Apply Now
The April 2026 CPU includes important Oracle EBS security patches. Some vulnerabilities are remotely exploitable, so this CPU should be treated as urgent and applied as soon as possible.

Introduction

Oracle released the Critical Patch Update CPU for April 2026 on 21 April 2026. As an Oracle EBS R12.2 DBA, applying this CPU is an important security and compliance activity. This guide explains the complete end-to-end process including patch identification, checker tools, ADOP patching cycle, and post-patch verification.

This guide is for Oracle EBS R12.2 only. Application tier patches on R12.2 are applied using ADOP Online Patching. The old adpatch utility is not used for R12.2 application patches.

Step 0 — MOS Starting Point

MOSFS Article ID What It Contains
KA923 Always points to the latest EBS CPU availability document.
KA1539 April 2026 specific patch list, prerequisites, and known issues for EBS R12.2.
KA1033 EBS Security FAQ and security background reading.
Pro Habit: Always start with KA923 because it points to the current CPU document every quarter.

Step 1 — Run Oracle Checker Tools First

Oracle provides checker utilities for EBS R12.2. Run these tools before downloading or applying patches. They help identify missing patches specific to your environment.

Tool Patch Purpose
ECPUC Patch 35583866 EBS Critical Patch Update Checker. Generates ECPUC.lst.
EJCPUC Patch 37171025 EBS Java CPU Checker for app tier and DB tier nodes.

How to Run ECPUC

# Source the run edition environment
source /u01/oracle/R122/EBSapps.env run

# Unzip ECPUC patch
unzip p35583866_R12_GENERIC.zip -d /stage/ecpuc

# Connect as APPS and run checker
sqlplus apps/<apps_password>

SQL> @/stage/ecpuc/ECPUC.sql

# Review generated report
cat ECPUC.lst

Review Section 3 of ECPUC.lst carefully. This section lists the required EBS CPU patches for your environment.

How to Run EJCPUC

# Unzip EJCPUC patch
unzip p37171025_R12_GENERIC.zip -d /stage/ejcpuc

# Run on application tier
source /u01/oracle/R122/EBSapps.env run
cd /stage/ejcpuc
./ejcpuc.sh

# Run separately on database tier
cd /stage/ejcpuc
./ejcpuc.sh
Always download the latest version of ECPUC and EJCPUC for the current CPU cycle.

Step 2 — Pre-Patch Health Checks

-- Check stale ADOP sessions
SELECT STATUS, ABANDON_FLAG, START_DATE
FROM   AD_ADOP_SESSIONS
WHERE  STATUS NOT IN ('completed', 'abandoned')
ORDER BY START_DATE DESC;

-- Check failed workers
SELECT WORKER_ID, STATUS, START_DATE
FROM   AD_WORKERS
WHERE  STATUS = 'Failed';

-- Check DB editions
SELECT EDITION_NAME, STATUS
FROM   DBA_EDITIONS
ORDER BY CREATED;

-- Check invalid objects
SELECT COUNT(*)
FROM   DBA_OBJECTS
WHERE  STATUS = 'INVALID';
# Check disk space
df -h $APPL_TOP $COMMON_TOP $NE_BASE

# Check ADOP status
adop phase=status
Backup is mandatory: Take RMAN database backup and application tier backup or snapshot before starting patching.

Step 3 — Apply Patches Using ADOP

In EBS R12.2, CPU application patches are applied using the ADOP cycle. Only the cutover phase requires user downtime.

Phase Downtime
PrepareNo downtime
ApplyNo downtime
FinalizeNo downtime
CutoverBrief outage
CleanupNo downtime

Phase 1 — Prepare

source /u01/oracle/R122/EBSapps.env run

adop phase=prepare

Phase 2 — Apply

# Dry run first
adop phase=apply patches=PATCH1,PATCH2,PATCH3 apply_mode=dryrun

# Real apply
adop phase=apply patches=PATCH1,PATCH2,PATCH3 apply_mode=online workers=8

# Monitor
adop phase=status

Phase 3 — Finalize

adop phase=finalize

SELECT COUNT(*)
FROM   DBA_OBJECTS
WHERE  STATUS = 'INVALID';

Phase 4 — Cutover

adop phase=cutover

SELECT EDITION_NAME, STATUS
FROM   DBA_EDITIONS
ORDER BY CREATED DESC;

Phase 5 — Cleanup

# Dry run cleanup
adop phase=cleanup mode=dryrun

# Full cleanup
adop phase=cleanup

Step 4 — Post-Patch Verification

-- Confirm patches are registered
SELECT BUG_NUMBER, LAST_UPDATE_DATE
FROM   AD_BUGS
WHERE  BUG_NUMBER IN ('PATCH1', 'PATCH2', 'PATCH3');

-- Confirm active edition
SELECT EDITION_NAME, STATUS
FROM   DBA_EDITIONS
ORDER BY CREATED DESC;

-- Check invalid objects
SELECT COUNT(*)
FROM   DBA_OBJECTS
WHERE  STATUS = 'INVALID';

# Verify services
$ADMIN_SCRIPTS_HOME/adstatus.sh
Run ECPUC again after cutover. If ECPUC.lst shows zero remaining patches, save it as audit evidence.

Complete Checklist

  • Open MOSFS KA923 and navigate to the current CPU document.
  • Download and run ECPUC.
  • Download and run EJCPUC on app tier and DB tier.
  • Download all patches listed in ECPUC.lst.
  • Confirm no stale ADOP cycle.
  • Confirm no failed workers.
  • Confirm enough disk space.
  • Take full RMAN and application backup.
  • Run ADOP prepare, apply, finalize, cutover, and cleanup.
  • Run ECPUC again after patching.
  • Complete smoke testing.
  • Document results and close the change ticket.
  • Patch order should be DEV → UAT → PROD.

Key References

Reference Description
MOSFS KA923Latest EBS CPU document
MOSFS KA1539April 2026 EBS CPU Availability Document
Patch 35583866ECPUC Checker
Patch 37171025EJCPUC Checker
Patch 17537119ETCC Technology Codelevel Checker

Written by Punit Kumar | Oracle EBS DBA Notes | punitoracledba.blogspot.com

No comments: