Skip to content


Online patching is the most important new feature in Oracle E-Business Suite Release 12.2. It is the ability to patch a running system without having to take the system down for a significant period of time while the patches are applied.

‘adop’ is the utility you use to apply patches in R12.2

Important parameters and commands related to ADOP are documents below.


These are the eight phases in which adop can run. It is most important and mandatory parameter that is used with adop.
You can also club multiple phases in single command like ‘PHASE=PREPARE,APPLY’ although abort and fs_clone need to be run alone and can’t be clubbed.Standard phases:
prepare – Prepare the instance for patch application.
apply – Apply patches (to the patch edition).
finalize – Ready the instance for cutover. It is run automatically.
cutover – Make the patch edition the new run edition.
cleanup – Drop obsolete objects and data from old editions. It is run automatically.There are also three special phases, used as per requirement.Special phases:
abort – Abort the current patching cycle. The abort phase can be run after either the prepare or apply phases have been run, but not after the cutover phase.actualize_all – Create new copies of all code objects in the patch
fs_clone – Copy the run file system to the patch file system.
 STATEMENT > for debugging.
PROCEDURE > for debugging high level procedures.
EVENT > to capture informational messages in normal processing. (default)
WARNING > to capture any internal error that is handled by the system and does not affect processing.
ERROR > indicates action failed, need to be reviewed, but the system continue processing.
UNEXPECTED > indicates an unrecoverable error, requires user intervention before processing can continue.
Cleanup processing needs to happen after adop finishes the patching work.Quick mode > shortest execution time, skips non-essential actions
Standard mode > All quick mode action + drops covered objects
Full mode > All quick mode action +  remove all unused code, data, and old editions and takes much longer
Quick mode > shortest execution, skips non-essential actions, no gather statistics.
Full mode > Gather statistics, may improve performance after cutover, can take an hour extra to complete.
 input_file  N/A INPUT_FILE=<Absolute input_file path>  To specify the name of the input_file supplied to adop. (see details on input_file later in this post)
 workers  N/A (depends on number of available CPU cores) WORKERS=<User-specified-value> Number of parallel workers used to execute tasks.In earlier released  adpatch used to prompt for number of workers. With adop in R12.2, if you want  to override the default formula that oracle uses now to calculation number of workers, use the WORKERS parameter. Take care that you don’t specify very high number of workers or else adop will fail.
 maxworkers  N/A (depends on number of available CPU cores)  MAXWORKERS=<User-specified-value> Maximum parallel workers that can be engaged. maxworkers should always be set to greater than the desired number of workers.
 runcontextfile  $CONTEXT_FILE  RUNCONTEXTFILE=<Absolute context_file path>  To specify the non-default context file patch in RUN filesystem
 patchcontextfile  Standard context file path in patch FS  PATCHCONTEXTFILE=<Absolute context_file path>   To specify the non-default context file patch in PATCH filesystem
 patches  N/A  PATCHES=<User-specified-value>For Standard Patch:when>patch directory is  a 6- to 8-digit numberPATCHES=<patch_number>


For Non-Standard Patch

> patch directory is not a 6- to 8-digit number example NLS patches <patch_number>_<language_code>.
> patch driver files are not named *<patchnum>.drv example merged patchesPATCHES=<patch_number>:<driver_file>.drv

This parameter specifies the patches adop needs to apply.Remember the numbered-only patches (standard) and containing-a-colon categories of patch (non-standard) can be mixed.Like:PATCHES= <patch_number1>,  <patch_number2>:<driver_file2>.drv
 defaultsfile  $APPL_TOP/admin/<SID>_patch/adalldefaults.txt  DEFAULTSFILE=<Absolute defaults_file path> Default file locations on both the run APPL_TOP and patch APPL_TOP is: $APPL_TOP/admin/<SID>_patch/adalldefaults.txtIn case you have created your own defaults file and want to use that instead, then use this parameter.
 patchtop  $NE_BASE/EBSapps/patch PATCHTOP=<Absolute patch_location_file path>  Default patch_top location is below.$NE_BASE/EBSapps/patchIf you want to keep your patches in some other lcoation, then you need to use this patrameter to let ADOP know where to search for patches pointed by ‘patches’ parameter.If you have a multi-node environment, you must download and unzip the patches (under $APPL_TOP_NE/EBSapps/patch) on the respective nodes.
In R12.2, oracle has integrated patch merging action in the patching command itself. In earlier releases we used to first merge patches using admrgpch command.By using MERGE=YES option ADOP will merge all the unified driver files into a single driver file.
If the patch you are applying went into error, you have two option when you start the adop utility again.1) you corrected error and want to continue with previous adop session:ABANDON=NO2) you decided that you don’t want to correct issue for now and want to abandon the previous adop session:ABANDON=YES
If the patch you are applying went into error and you corrected the issue and want to restart the previous patching session.It is just the reverse of ABANDON parameter.Remember ABANDON and RESTART will always have opposite value.
 flags N/A FLAGS=AUTOSKIP Use “flags=autoskip” in conjunction with the “abandon=no” parameter at the command-line to skip a failing patching step to “Continue as if a patch were successful”. You need to review the “autoskip” log that gets generated during the patching cycle in order to make sure that their were no errors and to take required actions in case of any errors
This parameter comes into picture when you have multi node setup. If you want to run adop on all nodes then use ALLNODES=YES.
Use this parameter to specify whether to perform database actions or skip. For example if you are in a multi-node environment and adop has already updated the database so when running on other node just use ACTION=NODB to save time.Remember when you are using ‘allnodes=yes’ in a multi-node ‘action=db’ must be specified.
To run adop in test mode (without applying any patches),specify apply=no
This parameter control whether the user is prompted about skipping actions in non-interactive patching. This is specifically useful when you are applying patches in multi node setup.
This parameter specify whether to restart application tier services after cutover phase or not.
 cm_wait  CM_WAIT=INFINITE (will wait forever)  CM_WAIT=<user_specified_number Specifies the number of minutes to wait until the ICM will be forced down.
To specify that a core dump will be generated if adop crashes.
To specify that a report will be generated that can help debug certian adop issue.
 preinstall N/A PREINSTALL=Y This mode is used only if the patch readme instructs. Generally this mode is used during the upgrade process to update AD utilities, apply pre-upgrade patches, or work around other patching issues.It will Compares version numbers, Copies files, Relinks FND and AD executables, Saves patch information. It also runs autoconfig if required.The dual file system in Release 12.2 means that there is no need to shut down application tier services before running AutoConfig.
 -help N/A N/A Shows the help screen.
 -status-status -detail Latest Session -STATUS (for latest session)
-STATUS <SESSION_ID> (for specific session)
Display status of the latest adop session.Use ‘adop -status -detail’ for detailed info
 -examples N/A N/A Displays some commonly used adop ample commnads


‘Complete’ adop patching cycle using parameters input through command line  (INTERACTIVE MODE)

So in R12.2 we have complete patching cycle to follow to apply a patch. These are set of commands which needs to executed in specific order.

You must set the environment by executing the run file system environment file.

$ . <run APPL_TOP path>/APPS<CONTEXT_NAME>.env

1) adop phase=prepare
2) adop phase=apply patches=<patch_number1>,<patch_number2> workers=<number_of_worker>
3) adop phase=finalize workers=<number_of_worker> (called automatically)
4) adop phase=cutover workers=<number_of_worker>
5) adop phase=cleanup (called automatically)


Running all phases in single command:

adop phase=prepare,apply,finalize,cutover,cleanup patches=<patch_number1>,<patch_number2>

All the phases need to be completed and you can’t skip any of these. For example, if you try to skip prepare phase, you may get error message like “Apply phase can only be run while in a patching cycle, i.e. after prepare phase.”

adop patching cycle in NON-INTERACTIVE mode

During apply phase, Non-interactive patching is a way to save time by avoiding some of the prompts and automating the patching process.

You can apply patches in non-interactive way by using a defaults file that contains much of the information you would have supplied at the adop prompts and by creating another file known as input file. Then, when you run adop, you specify the name of the input file. The location of the defaults file will also need to be included in the input file.

$ adop phase=apply input_file=<input_file.txt>

Location of Default file on both the run APPL_TOP and patch APPL_TOP is:


Just in case this file gets corrupted or lost, you can run AutoConfig and it will automatically instantiate a new copy.

NOTE: In R12.2, you don’t need to create this defaults file. The file is already created by oracle process. However you need to create one ‘input file’ to use with adop (The defaults file is not specified on the adop command line. It is the input file.)

The input_file contents should include the following required parameters:

patches=<patch number>
workers=<number of workers>
patchtop=<directory where patches are staged>
defaultsfile=<defaults file on patch APPL TOP>

To skip specific patching portion or action

During apply phase:

adop phase=apply options=nodatabaseportion, nogenerateportion

In above command we are instructing adop to not run database and generate portion.

Other options can be

options=noactiondetails  — if you do not want the details to be printed.

options=noautoconfig  — if you are applying a number of patches in sequence and want to run
AutoConfig only once in the end.

option=nocheckfile –to turn off the checkfile feature. Using checkfile adop skip some actions which are   already done.

option=nocompiledb –when applying multiple NLS, documentations patches etc

option=nocompilejsp –when applying multiple NLS, documentations patches etc

option=nocopyportion  –for skipping copy portion of the patch

To apply patch in ‘HOTPATCH’ mode

During apply phase:

adop phase=apply options=hotpatch

You can see couple of other examples commands by typing on Unix command prompt  ‘adop -examples‘ .

[Post Views: 31009]

Brijesh Gogia

I’m an experienced Oracle Applications DBA with more than a decade of full-time DBA experience. I have gained a wide knowledge of the Oracle software stack and have worked on several big projects for multi-national companies. I enjoy working with the leading-edge technology and have passion for database performance and stability. Thankfully my work allows me time for researching new technologies (and to write about them).
You can connect with me on LinkedIn.


  1. Basab Basab

    A nice comprehensive guide.

    • Anonymous Anonymous


  2. Sachin Chavan Sachin Chavan

    Hi Brijesh,
    Can we abort ADOP Cycle after finalize phase ?

Leave a Reply

Required fields are marked *

error: Alert: Content is protected !!