In Oracle documents, we see ;
"The directories where you extracted the patches applied in a given patching cycle must be retained, in the same location and with the same contents, until the next prepare phase completes. This is also a requirement for patches applied in a hotpatch session."
See what happened in the next prepare phase, after we applied a patch and then deleted it from PATCH_TOP.
You see, adop complained about the patch directory that was not exists.
This was actually an expected behaviour..
time 0: Suppose we apply a hotpatch using adop hotpatch=yes
time 1 : Suppose the patch (in hotpatch mode) applied successfully
time 2: Suppose we delete the patches (including the hotpatch at time0, that we have applied using hotpatch option) from PATCH_TOP
time 3: Development asks us to apply an online patch
-- now we need to start a new patching cycle to apply the online patch requested at time 3.
time 4: To apply the patch requested at time 3, we execute adop phase=fs_clone before executing adop phase=prepare for creating the new patching cycle , because " we deleted the patch files from PATCH_TOP, so adop prepare won't able to sync the filesystems."
"The directories where you extracted the patches applied in a given patching cycle must be retained, in the same location and with the same contents, until the next prepare phase completes. This is also a requirement for patches applied in a hotpatch session."
You see, adop complained about the patch directory that was not exists.
This was actually an expected behaviour..
So according to Oracle , what needed to be done is to download the missing patch from Oracle Support and restore it to the PATCH_TOP.
However, what we did in one of our test environment and want to share with you in this post is a little different.
That is, as we have fs_clone utility, we aborted the patch cycle in which the prepare phase was encountering this error and then executed fs_clone for the solution.
After the fs_clone, we saw the filesystem objects were synched and then we executed the prepare phase again. This time prepare phase completed with success.
Altough we don't suggest this approach, it might become handy one day.
executing fs_clone is actually useful some other cases as well.
As documented in E-Business Suite - ADOP Basic Usage Training Videos [Video] ( Doc ID 2103131.1 ), sometimes we can even execute fs_clone by our own decision to decrease the job of the next prepare phase.
Bytheway, this missing patch error, the oracle support solution and fs_clone solution are valid for both online and hot patches.
So the following scenario works; (not recommended..)
time 1 : Suppose the patch (in hotpatch mode) applied successfully
time 2: Suppose we delete the patches (including the hotpatch at time0, that we have applied using hotpatch option) from PATCH_TOP
time 3: Development asks us to apply an online patch
-- now we need to start a new patching cycle to apply the online patch requested at time 3.
time 4: To apply the patch requested at time 3, we execute adop phase=fs_clone before executing adop phase=prepare for creating the new patching cycle , because " we deleted the patch files from PATCH_TOP, so adop prepare won't able to sync the filesystems."
Hi Emran,
ReplyDeleteI am Misbah, started working on EBS 12.2.5 since few months. In my new company the major issue is the fs2 and fs2 anre not in sync...when I try to run fs_Clone...it comppletes the stage phase and after statring the apply phase for few minutes it fails with java error...as below
Environment file /home/oracle/PROD/fs1/EBSapps/appl/APPSPROD_erpp19moj.env is not found.
/home/oracle/PROD/fs1/inst/apps/PROD_erpp19moj/admin/scripts/adadminsrvctl.sh: line 161: $LOGFILE: ambiguous redirect
[UNEXPECTED]Error occurred running "sh /home/oracle/PROD/fs1/inst/apps/PROD_erpp19moj/admin/scripts/adadminsrvctl.sh stop -nopromptmsg"
[UNEXPECTED]Error running adadminsrvctl command
and the Cloneapplylog.error show the below error:
cat CLONE2019-02-06_03-11-08_1911581972.error
SEVERE : Feb 6, 2019 03:59:16 - ERROR - CLONE-20218 Cloning is not successful.
SEVERE : Feb 6, 2019 03:59:16 - CAUSE - CLONE-20218 An internal operation failed.
SEVERE : Feb 6, 2019 03:59:16 - ACTION - CLONE-20218 Provide the clone log and error file for investigation.
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.io.File.listFiles(File.java:1206)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:109)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.addProductPropertiesFile(CieWlsCloningPostprocessor.java:111)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.getJavaHome(CieWlsCloningPostprocessor.java:128)
at oracle.as.clone.patch.wls.CieWlsCloningPostprocessor.executePatch(CieWlsCloningPostprocessor.java:53)
at oracle.as.clone.mwhome.cloner.MiddlewareHomeApplyCloner.restoreMiddleWareHome(MiddlewareHomeApplyCloner.java:237)
at oracle.as.clone.mwhome.cloner.MiddlewareHomeApplyCloner.doClone(MiddlewareHomeApplyCloner.java:86)
at oracle.as.clone.cloner.Cloner.doFinalClone(Cloner.java:63)
at oracle.as.clone.request.ApplyCloneRequest.applyArchive(ApplyCloneRequest.java:188)
at oracle.as.clone.request.ApplyCloneRequest._clone(ApplyCloneRequest.java:69)
at oracle.as.clone.process.CloningExecutionProcess.execute(CloningExecutionProcess.java:131)
at oracle.as.clone.process.CloningExecutionProcess.execute(CloningExecutionProcess.java:114)
at oracle.as.clone.client.CloningClient.executeT2PCommand(CloningClient.java:257)
at oracle.as.clone.client.CloningClient.main(CloningClient.java:119)
SEVERE : GC overhead limit exceeded