Scenario-Patch fails because of missing prerequisite


Adpatch is running and fails on one of the workers.To fix this worker and continue with
the patch installation, a new patch (Prerequisite) needs to be applied.
Considering that only 1 adpatch session can run on an instance at any given time,how can
a patch be applied when adpatch is already running?

Solution:
=========

Step 1: Using the adctrl utility, shutdown the workers.
a. adctrl
b. Select option 3 ” Tell worker to shutdown/quit”

Step 2: Backup the FND_INSTALL_PROCESSES table which is owned by the APPS schema.
a. sqlplus apps/ b. create table fnd_install_processes_back as select * from fnd_install_processes;
c. The 2 tables should have the same number of records.

Select count(*) from fnd_install_processes_back;
Select count(*) from fnd_install_processes;

Step 3: Backup the AD_DEFERRED_JOBS table.
a. sqlplus apps/ b. create table AD_DEFERRED_JOBS_back as select * from AD_DEFERRED_JOBS;
c. The 2 tables should have the same number of records.

Select count(*) from AD_DEFERRED_JOBS_back;
Select count(*) from AD_DEFERRED_JOBS;

Step 4: Backup the .rf9 files located in $APPL_TOP/admin//restart directory.
At this point, the adpatch session should have ended and the cursor should be back at
the unix prompt.
a. cd $APPL_TOP/admin/
b. mv restart restart_back
c. mkdir restart

Step 5: Drop the FND_INSTALL_PROCESSES table and the AD_DEFERRED_JOBS table.
a. sqlplus apps/ b. drop table FND_INSTALL_PROCESSES;
c. drop table AD_DEFERRED_JOBS;

Step 6: Apply the new patch (The Prerequisite)

Step 7: Restore the .rf9 files located in $APPL_TOP/admin//restart_back directory.
a. cd $APPL_TOP/admin/
b. mv restart restart_ c. mv restart_back restart

Step 8: Retore the FND_INSTALL_PROCESSES table, which is owned by the APPS schema.
a. sqlplus apps/ b. create table fnd_install_processes as select * from fnd_install_processes_back;
c. The 2 tables should have the same number of records.

Select count(*) from fnd_install_processes;
Select count(*) from fnd_install_processes_back;

Step 9: Restore the AD_DEFERRED_JOBS table.
a. sqlplus apps/ b. create table AD_DEFERRED_JOBS as select * from AD_DEFERRED_JOBS_back;
c. The 2 tables should have the same number of records.

Select count(*) from AD_DEFERRED_JOBS;
Select count(*) from AD_DEFERRED_JOBS_back;

Step 10: Re-create synonyms
a. sqlplus apps/ b. create synonym AD_DEFERRED_JOBS for APPS.AD_DEFERRED_JOBS.
c. create synonym FND_INSTALL_PROCESSES for APPS.FND_INSTALL_PROCESSES;

Step 11: Start adpatch, it will resume where it stopped previously.