PREPARE Phase, Oracle Apps Online Patching 1


In the PREPARE phase, ADOP does a series of validations and then “prepares” the system for an online patching cycle. Here is a rundown of what happens step-by-step when we run adop phase=prepare

First, it preforms the verification of parameters and checks for various minor pre-reeqs

  • Performing verification of parameters
    • Sourcing the Run Edition environment
    • Validating system setup…
    • Determining admin node
      • Node registry is valid.
    • Performing database sanity checks
    • Acquire lock on sessions table
    • Checking for pending adop sessions
      • active hotpatch session…
      • active cleanup session
      • active FS_CLONE session
    • Staging new adop session…
      • Checking if node “<node_name>” previously failed
      • New row inserted into ad_adop_sessions table with session id : 100
    • Unlocking sessions table
  • createPatchCtxFile()
    • check if patch context file exists, else generate it (from where?)
    • Checking the status of phase
select  count(1)
  from  ad_adop_sessions
 where  adop_session_id=100
   and (prepare_status in ('N','R'))
   and  node_name=’node_name’;

It should return 1. Anything else, it will fail.

Then, it validates the configuration on the current node using txkADOPValidation script

$AD_TOP12.0.0/patch/115/bin/ -contextfile=<context>.xml -patchctxfile=<p_context>.xml -phase=prepare -logloc=file.log -promptmsg=hide


It Creates 3 files txkADOPValidations.log, txkADOPValidations.error & ADOPValidations_detailed.log

Some of the validations done are:

  • All the application tier nodes have entry in FND_NODES table
  • All application tier context files (on both run and patch file systems) have correct entries in FND_OAM_CONTEXT_FILES table
  • Value set for JDK_TOP and FMW_JDK_TOP are valid
  • All Oracle inventory checks were successful
  • APPL_TOP name is set correctly for the current node
  • OHS configuration files are in sync with the latest AutoConfig templates
  • Product addition for all custom product tops is correct
  • Checks for Admin Server information in context files of both the file systems are validated successfully across all nodes.
  • Validated multi-node setup
  • Custom Product Tops have been configured properly across all nodes
  • All required ports for patch file system are available
  • Domain is not locked by any WLS user
  • Patch file system WebLogic domain edit lock is not enabled
  • The value of s_jdbc_connect_descriptor is not NULL
  • The hostname and s_hostname have the same value
  • s_ohs_installed is correctly set
  • s_current_base is in sync across all nodes
  • All managed servers status are valid
  • File Edition values are set correctly in context files
  • The values of s_current_base and s_other_base are set correctly on both RUN and PATCH filesystems


Next, ADOP Verifies  data dictionary and updates statuses. During this time it also throws a warning if number of editions are greater than 20.

  • Executing steps for prepare phase…
  • Updating ADOP session status
  • Updating session process id
update ad_adop_sessions
   set status='R'
 where adop_session_id = 100 
   and appltop_id = 2103 
   and node_name='<node_name>'
  • Updating ADOP session status
  • Updating session dates
  • Updating session status
    • Updating prepare_status=R for session_id : 100
  • Check for number of edition and issue warning if there are more than 20. Below is a sample.
[WARNING]   There are 56 editions. We recommend no more than 20 for performance reasons.
[WARNING]   Please run actualize_all followed by cleanup in full mode to remove unused editions.


The next step is to ensure that the system is ready for PREPARE phase of ADOP. This is done using

  • Validating system is ready to prepare
  • Validating Configuration
    • $AD_TOP/12.0.0/patch/115/bin/
      • updatePatchApplTop()
      • Validate context file…
      • Validate PATCH context file…
      • Validate APPS schema credentials
      • Validate SYSTEM user credentials
      • Validate mode
      • Validate Action
      • Validate console log key
      • checkPrivileges() – Checking whether Filesystem directories have READ/WRITE access
      • checkFileEdition()
      • checkDiskSpaceOn<OS>()
    • Detecting configuration changes that must be synchronized.

If there are changes since last fs_clone or if the fs_clone was not run after the previous cutover, then now is the time. This is check done using the perl scrpt

$AD_TOP/12.0.0/patch/115/bin/ -detectConfigChanges
Contextfile = <file_name>.xml
promptmsg = hide
log =<path_to_log>.log
hostname = <host_name>

If configuration changes are detected you will see

“Configuration changes detected.”

If configuration changes are detected, the process then begins do do an FS_CLONE internally. It syncs both configuration and FS objects as seen from the below steps. During this, some of the patch edition processes (apps listener, node manager, admin server etc.) are started to enable the sync. At the end of the process, these are gracefully stopped.

  • Checking if there are pending cleanup actions
  • Validating database is ready to prepare
    • Deleting rows from ad_patches_tables table
    • Performing DB Sanity checks
    • Checking if edition enabled users exist
  • Generating report for important tablespaces $AD_TOP/12.0.0/sql/ADZDSHOWTS.sql
  • Start Apps listener
  • Submit ADZDPATCH concurrent program
  • Creating Database Patch Edition
  • Synchronizng patch filesystem with run filesystem
    • $AD_TOP/12.0.0/patch/115/bin/
  • Perform CONFIG_CLONE
  • Run FS Clone
  • Run AutoConfig on Patch Edition file system
  • Validate configuration
  • Synchronize Snapshots
  • Run Edition Reports
  • Update ADOP Status in table
  • Generate AD_ZD_LOGS Report
  • Stop Services on Patch file system

Leave a comment

Your email address will not be published. Required fields are marked *

One thought on “PREPARE Phase, Oracle Apps Online Patching