Here are a few troubleshooting tips for ADOP failures in R12.2
How to set service ebs_patch in R12.2
While running the adop phase=prepare, we receive the below error
[ERROR] Error Message : ORA-12514: TNS:listener does not currently know of service requested in connect descriptor (DBD ERROR: OCIServerAttach)
Need to check for service in the listener ebs_patch
$ lsnrctl status TSTDB1 LSNRCTL for Solaris: Version 12.2.0.2.0 - Production on 02-JAN-2021 12:56:30 Copyright (c) 1991, 2017, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=tech.com)(PORT=1521))) STATUS of the LISTENER Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST= =tech.com )(PORT=151))) Services Summary… Service " TSTDB1 " has 2 instance(s). Instance " TSTDB1 ", status UNKNOWN, has 1 handler(s) for this service… Instance " TSTDB1 ", status READY, has 1 handler(s) for this service… Service " TSTDB1 _ebs_patch" has 1 instance(s). Instance " TSTDB1 ", status READY, has 1 handler(s) for this service… Service "ebs_patch" has 1 instance(s). Instance " TSTDB1 ", status READY, has 1 handler(s) for this service… The command was completed successfully
The local_listener is not set properly in the init.ora parameter file.
TSTDB1 _LOCAL=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=tech.com)(PORT=1521))
)
SOLUTION
To implement the solution test the following steps in a development instance and then migrate accordingly:
- Ensure a valid backup exists before testing the solution.
- Check if the local_listener is set incorrectly by using:
At the RDBMS HOME:
sqlplus / as sysdba
SQL>show parameter local_listener
NAME TYPE VALUE
------ - ----- --------
local_listener string
In this scenario, The value is not set in this Environment. Set the value as per the below command
sqlplus / as sysdba
alter system set local_listener = TSTDB1 _LOCAL ;
- Restart the Database tier and the listener.
- Execute the “adop phase=prepare” again and confirm the error no longer occurs.
How to create TNS_ADMIN files in case deleted
You get the below error while executing the adop
[ERROR] Invalid connect string - cannot connect to database
Invalid Connect string - cannot connect to database
ERROR:
ORA-12521: TNS:listener does not currently know of instance requested in
connect descriptor
Invalid connect string - cannot connect to database
Invalid Connect string - cannot connect to database
Solution
tnsnames. ora is deleted on Patch filesystem
a. Please execute the following actions on both nodes.
- Source Patch File system env file
- Backup all files under $TNS_ADMIN
- Run adgentns.pl on Patch file system
perl $AD_TOP/bin/adgentns.pl contextfile=$CONTEXT_FILE appspass=<pass> - check the Confirm that DB connection is established from Patch file system
FUNCTION: main::validatePatchLocation
You get the below error while running the adop phase=prepare
FUNCTION: main::validatePatchLocation [ Level 1 ] ERRORMSG: Directory …/fs_ne/EBSapps/patch/346966464 does not exists.
Root Cause
One cannot remove patch files until AFTER running another online patching cycle or fs_clone.
run an online patching cycle to apply patch 3469664
$ adop phase=prepare
$ adop phase=apply patches= 346966464
$ adop phase=finalize
$ adop phase=cutover
$ adop phase=cleanup
One might think it is now safe to remove files from $PATCH_TOP, but not yet until after the next patching cycle.
run another online patching cycle
$ adop phase=prepare
$ adop phase=apply patches=22222222
$ adop phase=finalize
$ adop phase=cutover
$ adop phase=cleanup
Now it is safe to remove the $PATCH_TOP files for patch 3469664.
Solution
In this particular case, please restore the patch or run fs_clone
How To Allow ADOP To Continue As If It Were Successful After Hitting An Error While Applying Patch
ADOP patch session fail form/report compilation. Following error is reported
An error occurred while generating Oracle Forms files.
Continue as if it were successful :
AutoPatch could not find a response to the above prompt in the defaults file.
Solution:-
abandon=no restart=yes flags=autoskip
example: adop phase=apply patches= 3469664 abandon=no restart=yes flags=autoskip
In addition to the autoskip option creates a new logfile called asautoskip.log
ERRORMSG: ERROR The parameter ‘patches’ was passed incorrectly. For usage, enter adop -? or adop -help.
adop failed with the below error
TIME : Wed Mar 20 11:41:35 2021 FUNCTION: ADOP::GlobalVars::_ValidateApplyArgs [ Level 1 ] ERRORMSG: ERROR: Parameter 'patches' was passed incorrectly. For usage, enter adop -? or adop -help.
Cause
Patches parameters have been passed incorrectly. If the driver name is different from that directory name, then we need to specify the driver name after the directory
patches= 3469664_F: u3469664 .drv
Adop apply fails with ” Do you wish to apply this patch now [No]
Node: FAILED
Apply status: FAILED
[UNEXPECTED] Apply phase has failed.
[ERROR] adop phase=apply failed on Node: ""
[ERROR] adop phase=apply failed or is incomplete on Admin node:
[ERROR] Unable to continue processing on other available nodes: ,
[UNEXPECTED] Error running "adop phase=apply" on node(s): .
The following error is reported in the log file
This base patch contains files that may require translation depending on the languages you currently have installed. Oracle Corporation recommends that you obtain any translated versions of this patch for each of your non-US languages after applying this base patch. Or you may request and apply a Translation Synchronization Patch to obtain the translation. Do you wish to apply this patch now [No] ? No
Cause
The adalldefaults.txt was providing the default answer “No” during the patch application.
As per the following output:
$APPL_TOP/admin/${TWO_TASK}/adalldefaults.txt Start of Defaults Record %%START_OF_TOKEN%% MISSING_TRANSLATED_VERSION %%END_OF_TOKEN%% %%START_OF_VALUE%% No %%END_OF_VALUE%% End of Defaults Record
Solution
Please change the: $APPL_TOP/admin/${TWO_TASK}/adalldefaults.txt:
## Start of Defaults Record %%START_OF_TOKEN%% MISSING_TRANSLATED_VERSION %%END_OF_TOKEN%% %%START_OF_VALUE%% Yes %%END_OF_VALUE%% ## End of Defaults Record
Context file not uploaded for Patch filesystem
Logfile Error details: Validating configuration on node: [serv1]. Log: /u01/app/TEST/fs_ne/EBSapps/log/adop/100/20230203_1121858/fs_clone/validate/serv1 [UNEXPECTED]Error occurred running "perl /u01/app/TEST/fs1/EBSapps/appl/ad/12.0.0/patch/115/bin/txkADOPValidations.pl -contextfile=/u01/app/TEST/fs1/inst/apps/TEST_serv1/appl/admin/TEST_serv1.xml -patchctxfile=/u01/app/TEST/fs2/inst/apps/TEST_serv1/appl/admin/TEST_serv1.xml -phase=fs_clone -logloc=/u01/app/TEST/fs_ne/EBSapps/log/adop/100/20230203_1121858/fs_clone/validate/serv1 -promptmsg=hide" [UNEXPECTED]Error 1 occurred while Executing txkADOPValidation script on serv1
Cause
select * from FND_OAM_CONTEXT_FILES where NAME not in ('TEMPLATE','METADATA','config.txt') and CTX_TYPE='A' and (status is null or upper(status) in ('S','F')) and EXTRACTVALUE(XMLType(TEXT),'//file_edition_type') = 'patch'; no row selected
So context file missing from the database
Solution
Run Autoconfig from the patch filesystem
or
$ADJVAPRG oracle.apps.ad.autoconfig.oam.CtxSynchronizer action=upload contextfile=/u01/app/TEST/fs2/inst/apps/TEST_serv1/appl/admin/TEST_serv1.xml logfile=/tmp/patch_context_upload.log`
JVM Undersized
Sometimes fs_clone might fail because the weblogic configuration failed. You can set the below environment variable
export CONFIG_JVM_ARGS=”-Xmx2048m -Xms1024m -XX:MaxPermSize=512m -XX:-UseGCOverheadLimit”
I hope you like this post and that it helps in your day-to-day administration work
Related Articles
ADOP command
adopmon and adopreports utility R12.2.5
adopscanlog log analyzer utility in R12.2
Adop(Ad online patching utility) explained R12.2
what happens in the adop phase prepare