EBS 12.2 ADOP Interview Questions With Scenarios

Note: Check the patch cycle log is important to fix any issues. 
Location: $ADOP_LOG_HOME

1.What is ADOP concept in oracle apps

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 we use to apply patches in R12.2

2.What is PATCH_TOP directory in R12.2

In R12.2 there is a new directory location environment variable called $PATCH_TOP which points to $NE_BASE/EBSapps/patch
$NE_BASE points to <Non-Editioned-filesystem-directory>

Download the patch into the patch top directory and unzip it. This is the default location where the adop will look for patch files.
If you are planning to put patches in non-defualt location then you need to use adop parameter 'patchtop=<patch_path>' to explicitly define this location.

3.What happens when ADOP command is run

adop will perform all the tasks required to apply the patch:
*  Reads patch metadata to determine patch dependencies and requirements.
* Attempt to recover previously failed patching session (if any).
* Reads and validate the patch/product driver files.
* Compares version numbers of existing files against the patch files and Backs up all existing files        that will be changed by the patch.
* Copies files.
* Archive files in libraries.
* Relinks executables, Generates forms, reports, messages, graphics, and Java archive (JAR) files.
* Compiles JSP files and invalid database objects. Updates database objects.
* Runs AutoConfig if required.
* Saves patch information to the database.

All tasks are similar to what adpatch utility used to do earlier.

4.In which file system ADOP command should be run
We always run adop utility from the run edition file system.

5. How to apply patch in hot patch mode in R12.2
During apply mode use the below command.
adop phase=apply options=hotpatch

6.How to run all pahses in single ADOP command in R12.2

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

Note: 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."

7.How to complete ADOP patching cycle activity in Interactive mode

We must set the environment by executing the run file system environment file.
$ . ./ <run APPL_TOP path>/APPS<CONTEXT_NAME>.env

* adop phase=prepare
* adop phase=apply patches=<patch_number1>,<patch_number2> workers=<number_of_worker>
* adop phase=finalize workers=<number_of_worker> (called automatically)
* adop phase=cutover workers=<number_of_worker>
* adop phase=cleanup (called automatically)

8.How to complete ADOP patching cycle activity 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: $APPL_TOP/admin/<SID>_patch/adalldefaults.txt

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

The input_file contents should include the following required parameters:
adop phase=apply patches=<patch number>
adop phase=apply workers=<number of workers>
adop phase=apply patchtop=<directory where patches are staged>
adop phase=apply defaultsfile=<defaults file on patch APPL TOP>

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.)

9.How to skip specific patching portion/action in oracle apps R12.2

During apply phase:

adop phase=apply options=nodatabaseportion, nogenerateportion.

adop phase=apply options=noactiondetails - if you do not want the details to be printed.

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

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

adop phase=apply option=nocompiledb - when applying multiple NLS, documentations patches etc.

adop phase=apply option=nocompilejsp - when applying multiple NLS, documentations patches etc.

adop phase=apply option=nocopyportion - For skipping copy portion of the patch.

10.  What are the key differences between the DBA_OBJECTS, DBA_OBJECTS_AE, and AD_OBJECTS tables

Ans: DBA_OBJECTS shows object information for the current edition, but the STATUS column in this view may show the object as VALID even if the object actually needs to be compiled before use.
DBA_OBJECTS_AE is similar to DBA_OBJECTS, but shows object information across all editions. This has the drawback of showing objects in old editions that are no longer accessible to the application.
AD_OBJECTS is the Oracle E-Business Suite workaround to the unreliable STATUS column in DBA_OBJECTS. AD_OBJECTS shows the correct status for each object visible in the current edition. It also shows whether the object is “actual” (a real object) in the current edition, or a “stub” object (the object definition was inherited from a previous edition). You can query AD_OBJECTS to locate objects that need to be recompiled before use:
SQL>select owner, object_name, object_type from ad_objects where status = ‘INVALID’
order by 1,2,3
The same logic can be applied by running the script:
SQL>sqlplus apps/apps @$AD_TOP/sql/ADZDSHOWINVALID

11. Does Online Patching increase the network port requirements on an Oracle E-Business Suite instance

Ans: Yes. Online patching requires an additional set of network ports for the Oracle WebLogic Server managed servers on the second file system. During the cutover phase, the managed servers run simultaneously on the patch file system and run file system for a brief period, in a rolling transition process.

12. How to apply Technology Stack Patches in Oracle Apps

➢ Patching Oracle HTTP Server (OHS) using OPATCH
➢ Patching Oracle WebLogic Server using BSU
➢ Patching Oracle Forms using OPATCH
➢ Tech Stack Patches can be
➢ Applied Direct to Run Edition and sync’d to PATCH Edition
➢ Applied to Patch Edition in existing or separate Patch Cycle
➢ Full re-clone must be performed after applying Application Tier patches direct
to Run Edition to synchronize the PATCH file system from RUN Edition


1) Prepare the PATCH filesystem 
$ adop phase=prepare

2) Apply technology stack patches to PATCH filesystem

$ source .EBSapps.env PATCH
$ bsu.sh
$ opatch apply

3) Apply EBS patches (optional)

$ adop phase=apply

4) Complete the Patching Cycle
$ adop phase=finalize
$ adop phase=cutover
$ adop phase=cleanup

5) Synchronize the technology stack patches run and patch
$ adop phase=fs_clone

13. How to apply Application patch in hotpatch mode on run file system 

adop phase=apply patches=[patch] hotpatch=yes

14. Restart the failed patch from place you left

adop phase=apply patches=patch restart=yes

15. Restart the failed patch from beginning

adop phase=apply patches=patch abandon=yes

16. Ignore Failed Patch and Apply New Patch

adop phase=apply patches=NewPatch abandon=yes

17. ReApply a previously applied Patch 

adop phase=apply options=forceapply patches=patch

18. How to abort a patching cycle

adop phase=abort
Post step run below command
adop phase=cleanup cleanup_mode=full
adop phase=fs_clone

19. If the system crashes and unable to proceed the patch then what to do

We will see error as 

Error: Unable to continue as already another user is using adzdoptl.pl.
Previous session exist, cannot continue as per user input

➢ Run the following statement to find out the session that is in running state:
 select adop_session_id from ad_adop_sessions where status='R';
➢ Set the status to Completed 'C' for that session to re- try the phase that was interrupted
 update ad_adop_sessions set status='C' where status='R’

20. How to know patch applied on PATCH EDITION


21. adop cutover (adop phase=cutover) fails on forceStartupServices

If the Appps is installed on NFS then this error might be seen.


NFS Parameter Recommendations
For Application Tier File System

For Database Tier File System
DB Oracle Home
Data Files
rw,bg,nointr,hard,proto=tcp,vers=3,rsize=32768,wsize=32768 ( For RAW Devices)

Make sure the mount options are as per the above recommendations.

22. Adop Cutover Phase failure due to HTTP Server port

HTTP running on privileged port and hence the required permission not given to root user causing the failure for cutover.
 On a UNIX system, the TCP/IP port numbers below 1024 are special in that only processes with root privileges are allowed to listen on those ports. If  Oracle HTTP Server is configured to be run on a privileged port, then need to follow additional steps when running an online patching cycle. These steps are required for both SSL and non-SSL privileged ports


 1. Kindly log in as root and run below commands in both run and patch fs.

chown root $FMW_Home/webtier/ohs/bin/.apachectl
chmod 6750 $FMW_Home/webtier/ohs/bin/.apachectl

Even before and after running the prepare phase or the fs_clone phase, you must run above commands as the root user on both the run file system and the patch file system.

2.  Run below:

adop phase=cutover

adop phase=cutover mtrestart=no
With this parameter mtrestart=no, cutover will complete without restarting the application tier services.

You can perform any additional steps that require the services to be shut down, and then start the application tier services manually using the adstrtal.sh script.

3. Upon successful completion of cutover phase run below phase now.

adop phase=cleanup

23. Some Path in Profile Settings Not Changing At ADOP Cutover

ADOP does not update or change profile options, therefor setting profile options with editioned path (fs1/fs2) is not correct.

Profile options should be set to non editioned file-system [ NE_BASE ].

24. ADOP Cutover Phase Fails When Starting Application Tier Services

This is mostly not custover issue but due to some setting changes that application would not be starting.

Better to run 
adop phase=cutover mtrestart=no

25. Adop Cutover Failing With [UNEXPECTED] Run AutoConfig On All Node

On all nodes  where autoconfig_status is N:
i. Source patch file system env file
ii. Run autoconfig and provide patch context file if prompted for context


Update the ad_adop_session_patches table with below steps:
i. Take a backup of ad_adop_session_patches table
ii. "update ad_adop_session_patches set autoconfig_status='Y' where
iii. commit;

Run the adop cutover again.

26. ADOP Cutover Hangs with "Waiting for Internal Concurrent Manager to go down" when applying patches

1. Open another Terminal and Souce Application in there.

2. Manually, stop managers with script:
    $ ./adcmctl.sh stop

3. Make sure that no FNDLIBR process is running:
   $ ps -ef | grep FNDLIBR
   If any of them is running kill it using:
   $ kill -9 <pid>

4. After a few minutes, the original Terminal which had the hanged phase=cutover will start progressing.

27.Adop Cutover Phase Failed While Validating In txkADOPValidation

During adop Cutover phase validation, a cross reference between fs1/fs2 is detected. The txkADOPValidation script fails.

1> Backup the config.xml in fs2 file system

 a> cd /u01/oracle/VIS/fs2/FMW_Home/user_projects/domains/EBS_domain_VIS/config/
 b> cp config.xml config.xml-BCK

2> Edit each of the following tags in the config.xml for the fs2 filesystem to only reference fs2


From: /u01/oracle/VIS/fs1/EBSapps/comn/util/jdk64

To: /u01/oracle/VIS/fs2/EBSapps/comn/util/jdk64

3> Run autoconfig on the dbTier

4> Run autoconfig on the appsTier

5> Retry

28. Adop Fs_clone Run For Days No Error Just Keep Running

1. Run the following scripts in a TEST environment first where adop is executed:

   export CONFIG_JVM_ARGS="-Xms2048m -Xmx4096m -XX:MaxPermSize=2048m"

2. Run fs_clone again.

29. ADOP Apply Phase Error: You Must Be In Maintenance Mode To Apply Patches

The database local_listener parameter at the PDB level was set to the wrong value. It was pointing to an old hostname. The value for local_listener was <oldhostname>.<domain> when it should have been <newhostname>.<domain>. The value of local_listener is inherited from the CDB, so should not be set at all, it has to be reset. Below is the instruction to check for the value of the database local_listener parameter:

SQL> show parameter listener

------------------------------------ ----------- ------------------------------
forward_listener string
listener_networks string
local_listener string <oldhostname>.<domain> remote_listener string

sqlplus / as sysdba
SQL> alter session set container=<PDB_SID>;
SQL> show parameter listener; <--- Check the wrong value
SQL> alter system reset local_listener scope=both;
SQL> shutdown immediate;
SQL> startup
SQL> show parameter listener; <--- Confirm the correct value
Then, confirm you are able to successfully connect to the database using the APPS user.

30.Adop Cutover Failed by "[UNEXPECTED]Error occurred starting Admin Server" on Run File System

An old nodemanager.log.lck still exists under $FMW_HOME(RUN filesystem)/wlserver_10.3/common/nodemanager/nmHome1.

Rename or remove $FMW_HOME(RUN filesystem)/wlserver_10.3/common/nodemanager/nmHome1/nodemanager.log.lck and retry cutover.

31. E-Business Suite Online Patching ADOP Prepare Phase Fails With Error
'[UNEXPECTED]Error occurred running /admin/scripts/adalnctl.sh start' And 'Error 1 occurred executing Start Apps Listener'

1) Stop apps listener on fs2 (run FS):
adalnctl.sh stop

2) Stop apps services on fs2 (run FS):


3) Restart listener on fs2 (run FS):

adalnctl.sh start

4) Restart apps services on fs2 (run FS):


5) Run the prepare phase again after patch fs is sourced:

adop phase=prepare abandon=yes
Note: this will restart prepare phase from beginning

32. What is EBR

EBR is editioning based Redefinition which is used during online patching

33. What are different states which can be seen during cutover

These are the step by step action which the cutover performs.

34. How to execute an empty patching cycle

35. Running FS_CLONE give error at ADOPValidationUtils.pm

36. What is Actualize all, How it works

When the number of old database editions reaches 25 or more, we should consider dropping all old database editions by running the adop actualize_all

Click here to learn in details

37.Unable To Start Admin Server In Cutover Phase

Please change the the ulimit parameter for no of files to ulimit -n 9999 from unlimited and retry starting Admin Server manually using adadminsrvctl.sh script.

38. Adop Cutover Failed with ORA-01422: exact fetch returns more than requested number of rows

1. Bounce the Database completely, ensure that all RAC nodes are down.

2. Update ADOP Repository with the below SQLs :

update ad_adop_sessions set cutover_status='3' where adop_session_id=<session id> and node_name=<host name>;

update ad_adop_sessions set abort_status='X' where adop_session_id=<session id>;

3. After commit, restart Cutover using the same command.

39. Cutover Failed ORA-27477: "APPS"."AD_COMPILE_INVALID_OBJECTS" Already Exist

1. Check to see if the job is already scheduled:


If it returns:

-------------------------------------- ------------------------------------------

2. Drop the job:

dbms_scheduler.drop_job(job_name => 'AD_COMPILE_INVALID_OBJECTS');

3.Rerun the cutover:

adop phase= cutover

If you like please follow and comment