Warnings or errors occur when you use OPatch to implement an Oracle interim patch or merge fix. Reason and Prerequisites
As of Oracle 9.2, OPatch is used to implement Oracle patches (other than patch sets). For more details on OPatch, see Note 306408.
Many OPatch problems can be eliminated by implementing the current OPatch and OUI patches (Note 629588).
The following is an overview of possible warnings and errors and ways of eliminating them:
1. Exception in thread "main" java.lang.OutOfMemoryError
Exception in thread "main" java.lang.NoClassDefFoundError:
Can not set up OUI inventory session
OPatch stops because of Inventory problem.
The OUI does not display installed interim patches
The file <path>/oraInventory/Contents/oneoffsN.oo is empty
2. Interim inventory update exception: The base component
<oracle.rdbms,22.214.171.124.0> of the Oneoff Patch <126.96.36.199.0> is not
present in the install inventory.
3. Unknown inventory save error: PRKC-1021 : Problem in the clusterware
There were problems propagating this patch to the other nodes:
Interim patch cluster update file replication error:
PRKC-1004 : Problem in copying file to nodes
Interim patch cluster update directory creation error:
PRKC-1007 : Problem in creating directories on the nodes
4. A previously applied patch(es) may be in conflict with <new_patch>
The patch(es) for version <oracle_version> that may be in conflict with this patch are: ...
Continuing could overwrite all or parts of the patch(es) in conflict.
5. Problems when checking for files that are active.
There were problems when checking for active processes on critical
files. The patch tool runs the command 'fuser' to check that
critical files are not in use. Please check 'fuser' is available in
your PATH environmental variable.
6. There were problems in running the make commands needed to finish
the patching process.
The errors encountered were:
Couldn't create file for the make commands.
Error is: Permission denied
Error is: The file system has read permission only.
ERROR: Unknown inventory update error: null
7. Couldn't find required file liboraInstaller.
8. Cannot open to read file /oracle/oraInventory/ContentsXML/comps.xml
OS_ERROR = [No such file or directory]
OS_ERROR = [Permission denied]
9. Problems with the lock file
Lock file exists, details are:
Interim patch <patch> is holding the lock,
probably due to previous unsuccessful operation
10. Can't locate Command.pm in @INC
BEGIN failed--compilation aborted
11. Not a valid patch area.
Check the command line, current directory location and permissions
of the patch directory.
12. Cannot open file /var/opt/oracle/oraInst.loc for reading:
[No such file or directory]
13. Exception in thread "main" java.lang.NullPointerException
14. Couldn't restore object apa.o into the archive libserver9.a.
Couldn't restore object kke.o into the archive libserver9.a.
Couldn't restore object kko.o into the archive libserver9.a.
Couldn't restore object kkpap.o into the archive libserver9.a.
15. Can't locate English.pm in @INC ...
16. AIX 5.x: Can't call method "build_option_details" on an undefined
value at /oracl/BWT/920_64/OPatch/opatch_modules/Apply.pm line ...
17. The following required components were not located or have the
18. The patch directory area must be a number.
19. WINDOWS, Active State Perl:
'C:\Program' is not recognized as an internal or external command, operable program or batch file
The filename, directory name, or volume label syntax is incorrect.
Error in executing Java program to check conflict
ERROR: OPatch failed during pre-reqs check.
A core dump occurs.
20. LINUX: java.lang.UnsatisfiedLinkError:
Can't load library: /home/usupport/oui/bin/Linux/liboraInstaller.so
21. OPatch detects your platform as 453 while this patch <patch number>
supports platforms 23 (Sun SPARC Solaris (64-BIT))
OPatch detects your platform as 610 while this patch <patch number>
supports platforms 212 (AIX 5L (64-BIT))
22. OPatch detects your platform as 46 while this patch <patch number>
supports platforms 226 (Linux x86_64)
23. 10g: OPatch detects your platform as 110 while this patch <patch number>
supports platforms 214 (Linux x86_64)
24. The Oracle Home /oracle/<sid>/920_64 is not registered with the Central
Inventory. OPatch was not able to get details of the home from the
ERROR: OPatch failed because of Inventory problem
Exception in thread "main" OPatch Exception:
Cannot lock OUI inventory (READ/WRITE Level)
The target area /oracle/product/oraInventory cannot be used
because it is in an invalid state.
Files on system are patched but Inventory Update has failed.
25. This patch will update Jar file(s) but OPatch was not able to locate
executable jar under /oracle/product/9.2.0/jdk/bin.
ERROR: OPatch failed during pre-reqs check.
find_executable_file(): Cannot find "jar" from
ERROR: OPatch failed because of cmd. args. problem.
The following problems were encountered when trying to backup Java
[ object: Subscription.class ]
26. Archive failed: failed to update
"<ORACLE_HOME>/lib/libserver9.a" with updated
There are 1 issues patching static library in Oracle Home.
FILE PROBLEM: some files are not patched.
OPATCH_JAVA_ERROR: Patch was not successfully applied.
Verification of the patch failed.
ERROR: OPatch failed as verification of the patch failed.
FINEST:CheckSum of 2 streams are 594889758 and 594889552
FINE: 2 files are identical? FALSE
INFO: Archive failed: failed to update
"<ORACLE_HOME>/lib/libserver10.a" with updated
27. INFO:The following warnings have occurred during OPatch execution:
INFO:1) OUI-67160:ApplySession for patch ID '5188321':
Could not back up following actions for patch rollback:
28. ApplySession failed: ApplySession failed in system modification
phase... 'ApplySession::apply failed: Jar not applied ...
'invalid entry COMPRESSED SIZE (EXPECTED 31214 BUT GOT 30948 BYTES)'
29. OUI-67124:Copy failed Solution
files/lib/libjox10.a' to '/oracle/<sid>/102_64/lib/libjox10.a
1. Install a current version of the Oracle Universal Installer in accordance with Note 601965. OPatch should then work properly.
2. Implement a current version of the Oracle Universal Installer in accordance with Note 610880.
3. OPatch inadvertently thinks that there is an RAC cluster and terminates with cluster-specific error codes. For more information, see Note 619599.
4. For more information, see Note 628222.
5. Copy the fuser command (normally in /usr/sbin) into the OPatch directory. Make sure that ora<sid> can execute this command and that PATH contains the OPatch directory.
6. Make sure that ora<sid> has write and read authorization for the patch directory. In addition to read authorization, OPatch also needs write authorization for the patch directory as the old versions of the replaced objects are stored there.
7. The liboraInstaller library is created during the OUI installation and is also required by OPatch. OPatch determines the OUI directory with the library in the following two steps:
a) Retrieve the directory defined with inventory_loc from oraInst.loc (UNIX, for example, /oracle/oraInventory) or the inst_loc registry entry from HKEY_LOCAL_MACHINE->Software->Oracle (WINDOWS, for example C:\Program Files\oracle\inventory).
b) Go to the oui subdirectory of the higher-level directory (for example, /oracle/oui on UNIX or C:\Program Files\oracle\oui on WINDOWS).
You should therefore check the following points:
- Correctness of the entry in oraInst.loc
- A suitable runInstaller must be installed for the current database release.
- You must use the aforementioned mechanism to find the correct OUI directory. If required, create a link from the OUI directory determined above to the existing OUI directory, for example:
ln -s <path_of_installed_oui> /oracle/oui
- The OUI directory and its subdirectories must be readable for ora<sid>.
8. On UNIX, make sure that the correct inventory is referenced in oraInst.loc and that this is readable for ora<sid>. On WINDOWS, check the correctness of the inst_loc entry in the registry under HKEY_LOCAL_MACHINE->Software->Oracle.
Also note that OPatch can only be used as of 9.2. A call under Oracle <= 8.1.7 also results in this error.
9. When you import a patch, OPatch creates the file $ORACLE_HOME/.patch_storage/patch_locked to prevent several patches being implemented simultaneously. If problems occur during implementation, this file may not be deleted, and attempts to implement other patches fail due to the lock.
To eliminate this error, correct the error that occurred when implementing the patch that holds the lock. As soon as this patch has been successfully implemented, the lock no longer exists. Alternatively, you can roll back the patch that holds the lock using "opatch rollback".
10. The Perl module Command.pm required to start OPatch must be available in the subdirectory opatch_modules of the OPatch directory. Check the file and directory authorizations and install a current OPatch version if necessary.
11. OPatch must be called from the directory in which the patch to be implemented is located. The directory name is also the patch number. For example, a source directory such as /oracle/stage/9203/3023831 is correct for patch 3023831 whereas $ORACLE_HOME/OPatch or /oracle/stage/9203 are incorrect.
In addition, make sure that the file and directory authorization in the patch directory are sufficient and that the patch was extracted completely and correctly. Retrieve and extract the patch again if you are doubtful.
12. Make sure that the file oraInst.loc exists in the directory /var/opt/oracle or /etc (depending on the operating system) and that it has sufficient authorizations.
13. This error may occur if you have copied the Oracle software manually from another system. This procedure is not supported. Install the Oracle software using OUI instead of copying it from another system.
Also note that once you have installed Oracle-Home, you must not rename it.
14. During a patch rollback, backups of the old versions of objects replaced within the framework of the patch are copied back. These copies are located in $ORACLE_HOME/.patch_storage/<patch>/lib. If these no longer exist for some reason, an error occurs. In this case, you can copy the files from this directory in a similar system. Alternatively, the Oracle software must be uninstalled completely and then installed again. Note 551542 describes how to uninstall the software.
15. This error may be triggered as a result of an obsolete Perl version. Make sure that you have installed a supported Perl version and that the correct perl executable has been created. If required, adjust the PATH variable or specify the complete path during the call.
16. If this error occurs on AIX 5.x, it could be caused by the Perl Version 5.6.1 used. In this case, you can use Perl 5.6.0 (in contract to the general recommendation), which should allow the import.
17. The patch to be imported does not match the patch set being used. Check the used patch set and the prerequisite for the patch to be imported.
18. The error can occur if the patch archive was unpacked on WINDOWS and then transferred to UNIX. Therefore always unpack the archive directly on UNIX.
19. If the problem occurs when you use activestate perl, set the ACTIVE_STATE_PERL environment variable to TRUE.
20. For more information, see Note 770236.
21. For more information, see Note 815155.
22. Use Opatch 188.8.131.52.53 or higher or set the OPATCH_PLATFORM_ID to 226:
setenv OPATCH_PLATFORM_ID 226
23. Set the environment variable OPATCH_PLATFORM_ID to 214.
24. Ensure that ora<sid> is the owner of the oraInventory/locks directory, and that it has both read and write authorization for this directory.
25. For more information, see Note 932108.
26. For more information, see Note 1032044.
27. This is due to Oracle bug 5354326 or 5694851. Apply OPatch 10.2.0.4 or higher (Note 839182) to solve this problem.
28. Download the most recent OPatch from SAP Service Marketplace (even if the patch level of the OPatch used seems to be up-to-date).
29. Stop Oracle and all listeners and execute as the root user /usr/sbin/slibclean. After you do this, rename the file libjox10.a as follows:
mv libjox10.a libjox10.a.orig
mv libjox10.a.orig libjox10.a
After you perform these steps, apply the patch that failed previously.