When the prepare phase is run, files are copied/synchronized from the Run filesystem to the Patch filesystem and code stubs are created in the patch edition of the database. These stubs are instantiated when they are called the first time or the actualize_all parameter is used.
The second file system contains a copy of all the components that make up an application tier file system, including:
- APPL_TOP – Oracle E-Business Suite code
- INST_TOP- Instance Configuration Home
- FMW_HOME – Oracle Weblogic Server Home and Oracle E-Business Suite Domain
- ORACLE_HOME – Oracle Application Server Home, Forms, Reports
- IAS_ORACLE_HOME – Oracle OHS Home
- COMMON_TOP – Oracle E-Business Suite Java code, third-party libraries
During the prepare phase, adop performs the following steps:
- Checks whether to perform a cleanup.
- Validates the system configuration to ensure that the system is ready to start an online patching cycle.
- Checks to see if the database is prepared for online patching:
- Checks if the database user is edition-enabled.
- Checks to see if the patch service has been created. adop requires that a special database service exists for the purpose of connecting to the patch edition. Its existence is validated when the prepare phase is run.
- Checks to see if logon trigger exists and is enabled.
- Checks the integrity of the database data dictionary, refer to MOS Note 1531121.1, Using the Online Patching Readiness Report in Oracle E-Business Suite Release 12.2.
- Checks that the E-Business Suite Technology Codelevel Checker (ETCC) has has been run, to verify that all required patches have been applied to the database.
- Checks system configuration on each application tier node to make sure that each application tier node is correctly registered, configured, and ready for patching.
- Checks for the existence of the “Online Patching In Progress” (ADZDPATCH) concurrent program. This program prevents certain predefined concurrent programs from being started, and as such needs to be active while a patching cycle is in progress (that is, while a database patch edition exists).
If the ADZDPATCH program has not yet been requested to run, a request is submitted. If the request status is pending, it may be waiting for an incompatible program to finish. After incompatible programs finish, the ADZDPATCH status will change to running, and it will allow the prepare phase to proceed.
The next stage depends on whether the concurrent managers are running:
If the concurrent managers are all down, the prepare phase continues, with ADZDPATCH entering a status of pending (with the highest priority) until the managers are started.
If the concurrent managers are partially up, but there is no manager defined that can run ADZDPATCH, then the prepare phase will exit with an error.
If the concurrent managers are up, and there is one defined that can run ADZDPATCH, processing will loop until ADZDPATCH changes status from pending to running (that is to say, as noted in Step 2, no incompatible programs are found). The prepare phase then continues.
Note: ADZDPATCH is cancelled when the cutover phase is complete.
- Invokes the TXK script $AD_TOP/patch/115/bin/txkADOPPreparePhaseSynchronize.pl to synchronize the patches which have been applied to the run APPL_TOP, but not the patch APPL_TOP. The script depends on the adop repository for patches that have been applied on the run APPL_TOP but not the patch APPL_TOP.
- Checks the database for the existence of a patch edition, and creates one if it does not find one. An example from the log file that shows the prepare checking for the patch edition:
EVENT Prepare System
700202704 09:00:10 00:00:00 ad.plsql.ad_zd.create_edition
STATEMENT SQL: create edition V_20170316_0900
EVENT Patch edition not yet created by master node.
EVENT Will wait for another minute and retry.
- Calls the $AD_TOP/patch/115/bin/txkADOPPreparePhaseSanityCheck.pl script again to confirm that the database connection to the patch edition is working.
- Prepare does not run FS_CLONE. Prepare does run:
- Prepare has the old default sync_mode of “patch”. This can be thought of as the file sync mode, because it synchronizes the files of the Run edition to the Patch edition. The new value for sync_mode that is introduced with AD-TXK Delta 8, is “delta”. Delta mode can use rsync to significantly speed up the prepare phase.
There are two values for sync_mode:
sync_mode = patch, and
sync_mode = delta, (uses rsync) – this is new in AD-TXK delta 8
The benefit besides being much faster, is that sync_mode=deltat also copies all customizations and ignores the adop_sync.drv.
Much faster than the other two methods, this delta synchronization method uses your choice of third-party utility to synchronize the file systems by copying files as applicable from the source directory to the destination directory, optionally ignoring any files and directories you may decide to specify in an exclusion file.
To use this method, specify the parameter/value pair sync_mode=delta on the adop command line:
$ adop phase=prepare sync_mode=delta
The delta_sync_drv.txt file includes examples for setting up synchronization using rsync on UNIX.