# Oracle EBS 12.2 adop Phases and Options Reference (Online Patching)

> Source: https://netray.co/tools/oracle-ebs-adop-phases-and-options-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Every adop phase, apply mode and common option in EBS 12.2 online patching, with example commands, whether it needs downtime and the traps to avoid.

## Category

oracle

## Erp

Oracle E-Business Suite

## Audience

- Apps DBA
- ERP administrator
- Release manager

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Command

**Key:** cmd

**Type:** text

#### Type

**Key:** type

**Type:** select

**Options:**

- Phase
- Mode
- Option
- Utility

#### What it does

**Key:** does

**Type:** text

#### Downtime?

**Key:** downtime

**Type:** select

**Options:**

- Y
- N

#### Example command

**Key:** example

**Type:** text

#### Gotchas

**Key:** gotchas

**Type:** text

**Rows:**

**Cmd:** phase=prepare

**Type:** Phase

**Does:** Starts a patching cycle: checks the system, synchronises the patch file system with the run file system and creates the patch database edition

**Downtime:** N

**Example:** adop phase=prepare

**Gotchas:** If cleanup was not run after the previous cutover, prepare runs it first and the cycle starts late; run on the primary node, adop drives the other nodes

**Cmd:** phase=apply

**Type:** Phase

**Does:** Applies one or more patches to the patch file system and patch edition

**Downtime:** N

**Example:** adop phase=apply patches=12345678

**Gotchas:** Users keep working on the run edition; can be repeated several times in one cycle before finalize

**Cmd:** phase=finalize

**Type:** Phase

**Does:** Compiles invalid objects and gets the patch edition ready for cutover

**Downtime:** N

**Example:** adop phase=finalize

**Gotchas:** Run close to cutover to keep the cutover window short; finalize_mode=full can also gather statistics

**Cmd:** phase=cutover

**Type:** Phase

**Does:** Stops services, makes the patch edition and file system the new run, restarts services

**Downtime:** Y

**Example:** adop phase=cutover

**Gotchas:** The only phase in a normal cycle that needs downtime; warn users and let running concurrent requests finish first

**Cmd:** phase=cleanup

**Type:** Phase

**Does:** Drops obsolete editioned objects and cross-edition triggers left from the previous run edition

**Downtime:** N

**Example:** adop phase=cleanup

**Gotchas:** Run it explicitly after cutover; if skipped, the next prepare runs it automatically and starts late; default mode is standard

**Cmd:** cleanup_mode=quick | standard | full

**Type:** Option

**Does:** quick does the minimum to allow the next cycle; standard also drops obsolete objects; full removes all old editions' data and is the most thorough

**Downtime:** N

**Example:** adop phase=cleanup cleanup_mode=full

**Gotchas:** Use full after abort and after actualize_all; quick is for tight schedules only

**Cmd:** phase=fs_clone

**Type:** Phase

**Does:** Copies the run file system to the patch file system to re-synchronise them

**Downtime:** N

**Example:** adop phase=fs_clone

**Gotchas:** Needed after an abort and when the file systems are known to differ; takes much longer than the incremental sync in prepare

**Cmd:** phase=abort

**Type:** Phase

**Does:** Abandons the current cycle before cutover and discards the patch edition

**Downtime:** N

**Example:** adop phase=abort

**Gotchas:** Only possible before cutover; afterwards run cleanup_mode=full and then fs_clone before the next prepare

**Cmd:** phase=actualize_all

**Type:** Phase

**Does:** Creates actual copies of all code objects in the patch edition so old editions can be retired

**Downtime:** N

**Example:** adop phase=prepare,actualize_all,finalize,cutover,cleanup cleanup_mode=full

**Gotchas:** Run periodically when the number of database editions grows; long running, plan it as its own cycle

**Cmd:** Combined phases

**Type:** Phase

**Does:** Runs several phases in one command

**Downtime:** Y

**Example:** adop phase=prepare,apply,finalize,cutover,cleanup patches=12345678

**Gotchas:** Includes cutover, so it takes downtime at the point cutover runs; fine for small patches in a maintenance window

**Cmd:** apply_mode=downtime

**Type:** Mode

**Does:** Applies a patch directly to the run file system and edition with services down, no online cycle

**Downtime:** Y

**Example:** adop phase=apply patches=12345678 apply_mode=downtime

**Gotchas:** Only when the patch readme allows or requires it, typically for AD-TXK or initial upgrade patches; stop apps tier services first

**Cmd:** apply_mode=hotpatch

**Type:** Mode

**Does:** Applies a patch to the run edition while the system is up, outside an online patching cycle

**Downtime:** N

**Example:** adop phase=apply patches=12345678 apply_mode=hotpatch

**Gotchas:** Only when the patch readme explicitly says hotpatch is allowed; cannot be used while an online patching cycle is in progress

**Cmd:** patches=

**Type:** Option

**Does:** Comma-separated list of patch numbers (or driver files) to apply

**Downtime:** N

**Example:** adop phase=apply patches=12345678,23456789

**Gotchas:** Patches must be unzipped in the patch top directory; order matters unless merged

**Cmd:** merge=yes

**Type:** Option

**Does:** Merges the listed patches into one before applying

**Downtime:** N

**Example:** adop phase=apply patches=12345678,23456789 merge=yes

**Gotchas:** Saves time for many small patches; a failure stops the whole merged patch

**Cmd:** patchtop=

**Type:** Option

**Does:** Directory where the patches are unzipped

**Downtime:** N

**Example:** adop phase=apply patches=12345678 patchtop=/u01/patches

**Gotchas:** Defaults to $PATCH_TOP under fs_ne; use a path visible to all nodes in shared configurations

**Cmd:** workers=

**Type:** Option

**Does:** Number of parallel AD workers for the patch

**Downtime:** N

**Example:** adop phase=apply patches=12345678 workers=8

**Gotchas:** Too many workers slow users on the run edition; size it to spare CPU during online apply

**Cmd:** restart=yes

**Type:** Option

**Does:** Restarts a failed apply from where it stopped after you fix the cause

**Downtime:** N

**Example:** adop phase=apply patches=12345678 restart=yes

**Gotchas:** Read the worker log first; use adctrl to inspect worker status

**Cmd:** abandon=yes

**Type:** Option

**Does:** Abandons a failed apply and starts that patch from the beginning

**Downtime:** N

**Example:** adop phase=apply patches=12345678 abandon=yes

**Gotchas:** Different from phase=abort, which throws away the whole cycle

**Cmd:** options=

**Type:** Option

**Does:** Passes AD patching options to the apply, for example nocopyportion, nogenerateportion, nocompiledb

**Downtime:** N

**Example:** adop phase=apply patches=12345678 options=nocompiledb

**Gotchas:** Use only when the readme or Oracle Support tells you to; skipping portions can leave the patch incomplete

**Cmd:** input_file=

**Type:** Option

**Does:** Reads adop parameters from a file of name=value lines

**Downtime:** N

**Example:** adop input_file=/u01/patches/apply_input.txt

**Gotchas:** Keeps long patch lists out of shell history; parameters on the command line and in the file must not conflict

**Cmd:** mtrestart=no

**Type:** Option

**Does:** Leaves application tier services down after cutover

**Downtime:** Y

**Example:** adop phase=cutover mtrestart=no

**Gotchas:** Use when you need post-cutover manual steps before users return; start services yourself afterwards

**Cmd:** adop -status

**Type:** Utility

**Does:** Shows the current or last session and the status of each phase on each node

**Downtime:** N

**Example:** adop -status

**Gotchas:** Check before every phase; a phase showing R (running) or F (failed) must be resolved first

**Cmd:** adop -status -detail

**Type:** Utility

**Does:** Adds detail such as file system bases and per-node timings

**Downtime:** N

**Example:** adop -status -detail

**Gotchas:** Useful when one node in a multi-node install is out of step

**Cmd:** adop -validate

**Type:** Utility

**Does:** Validates the online patching configuration across nodes without starting a cycle

**Downtime:** N

**Example:** adop -validate

**Gotchas:** Run after cloning or adding nodes, before the first prepare

**Cmd:** AD_ADOP_SESSIONS

**Type:** Utility

**Does:** Table with one row per adop session and node, with a status column per phase

**Downtime:** N

**Example:** SELECT adop_session_id, node_name, prepare_status, apply_status, cutover_status, cleanup_status FROM ad_adop_sessions ORDER BY adop_session_id DESC

**Gotchas:** Read only; never update it to force a state, use abort or Oracle Support guidance

**Cmd:** AD_ADOP_SESSION_PATCHES

**Type:** Utility

**Does:** Table of patches applied in each session, with status and file system

**Downtime:** N

**Example:** SELECT adop_session_id, bug_number, status, node_name FROM ad_adop_session_patches WHERE bug_number = '12345678'

**Gotchas:** BUG_NUMBER is a string; a row here does not prove the cycle reached cutover

**Notes:** Scope: EBS 12.2 online patching with adop. Behaviour and available options change with the AD-TXK code level; adop -help on your instance and the Maintenance Guide for your level are authoritative. Always follow the patch readme for the apply mode.

## Content

**Intro:** A reference for the adop online patching utility in Oracle EBS 12.2: each phase, apply mode and common option, with an example command, whether it takes downtime and the mistakes that cause failed cycles. Options vary by AD-TXK level, so confirm with adop -help on your instance.

**Sections:**

#### The online patching cycle in order

**Body:** A normal cycle runs five phases from the primary apps node, with adop driving the other nodes. Only cutover takes the system down; everything else runs while users work on the run edition. You can run apply several times between prepare and finalize to stack patches into one cycle, and you can combine phases on one command line in a maintenance window.

**Bullets:**

- 1. prepare: sync patch file system, create patch edition
- 2. apply: patch the patch file system and edition (repeatable)
- 3. finalize: compile and get ready for cutover
- 4. cutover: short downtime, patch becomes run
- 5. cleanup: drop obsolete objects; if skipped, the next prepare runs it first
- Out of cycle: abort (before cutover only), fs_clone, actualize_all

#### What runs on the run versus patch edition

**Body:** During prepare, apply and finalize, users and concurrent managers keep using the run file system and the run database edition. adop works only on the patch file system and the patch edition, using editioning views and cross-edition triggers so data changed by users is carried forward. That is why patches applied online must be online-patching compliant, and why custom code must follow the 12.2 development standards (no direct DDL on base tables outside the supported AD_ZD utilities). Cutover stops services, switches the default database edition, swaps RUN_BASE and PATCH_BASE and restarts. Cleanup then removes what the old run edition left behind. Heavy apply workers still use database and CPU resources, so schedule large patches outside peak hours even though no downtime is taken.

#### Abort versus abandon

**Body:** The two are easy to confuse and do very different things. abandon=yes is an apply option: a patch failed, you want to throw away that attempt and start the same patch again from the beginning in the same cycle. phase=abort ends the entire cycle: the patch edition and everything applied in it are discarded, and the run edition is untouched. Abort is only possible before cutover; after cutover the patch is in production and the way back is a fix-forward patch or a restore. After an abort, run adop phase=cleanup cleanup_mode=full and then adop phase=fs_clone so the patch file system matches the run file system again before the next prepare. restart=yes is the third choice: fix the cause and continue the failed apply where it stopped.

#### Hotpatch and downtime mode restrictions

**Body:** apply_mode=hotpatch applies a patch straight to the run edition while users are on the system, with no prepare or cutover. Use it only when the patch readme explicitly says hotpatch is supported, and never while an online patching cycle is active. apply_mode=downtime also patches the run edition directly but with services stopped; readmes call for it mainly for AD and TXK infrastructure patches and some upgrade steps. Both modes change the run file system, so the patch file system falls behind: the next prepare synchronises it, or run fs_clone if the readme says so. If a readme gives no instruction, use the normal online cycle. Check adop -status before and after each command and keep the session logs from $NE_BASE/EBSapps/log/adop.

**Cta:** If you want an assistant that reads adop session logs on your own servers and explains in plain English why a phase failed, we can set that up privately.

**Faq:**

#### What are the adop phases in Oracle EBS 12.2?

**Answer:** prepare, apply, finalize, cutover and cleanup form the normal cycle. Additional phases are abort (discard a cycle before cutover), fs_clone (re-synchronise the patch file system from the run file system) and actualize_all (create actual copies of all code objects so old database editions can be retired). Only cutover needs downtime in a normal cycle.

#### What is adop hotpatch?

**Answer:** apply_mode=hotpatch applies a patch directly to the running system without an online patching cycle and without downtime. Oracle supports it only for patches whose readme explicitly allows hotpatch mode. It cannot run during an active cycle, and because it changes the run file system, the next prepare synchronises the patch file system.

#### How do I abort an adop cycle?

**Answer:** Run adop phase=abort before cutover. This discards the patch edition and everything applied in the cycle; the run system is unaffected. Then run adop phase=cleanup cleanup_mode=full and adop phase=fs_clone before starting a new cycle with prepare. After cutover you cannot abort; you fix forward or restore.

#### How do I check the status of an adop session?

**Answer:** Run adop -status for the current or last session, or adop -status -detail for per-node information. The same data is in AD_ADOP_SESSIONS, one row per session and node with a status column for each phase, and the patches in AD_ADOP_SESSION_PATCHES. Session logs are under $NE_BASE/EBSapps/log/adop/<session_id>.

## Search terms

oracle ebs adop phases, adop cycle in oracle apps r12, oracle ebs adop hotpatch, oracle ebs adop abort, oracle ebs online patching, oracle ebs adop, adop phase=cutover mtrestart, adop cleanup_mode full

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
