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
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. |
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
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
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 |
|---|---|
| Prepare | No downtime |
| Apply | No downtime |
| Finalize | No downtime |
| Cutover | Brief outage |
| Cleanup | No 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
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 KA923 | Latest EBS CPU document |
| MOSFS KA1539 | April 2026 EBS CPU Availability Document |
| Patch 35583866 | ECPUC Checker |
| Patch 37171025 | EJCPUC Checker |
| Patch 17537119 | ETCC Technology Codelevel Checker |
Written by Punit Kumar | Oracle EBS DBA Notes | punitoracledba.blogspot.com