Oracle Critical Patch Update on Windows fails with error 74

book

Article ID: 159395

calendar_today

Updated On:

Products

Data Loss Prevention Enforce

Issue/Introduction

While attempting to apply the latest CPU patch it fails.

 

 

C:\OraTemp\9393548>c:\oracle\product\10.2.0\db_1\OPatch\opatch apply
Invoking OPatch 10.2.0.4.9

Oracle Interim Patch Installer version 10.2.0.4.9
Copyright (c) 2009, Oracle Corporation.  All rights reserved.


Oracle Home       : c:\oracle\product\10.2.0\db_1
Central Inventory : C:\Program Files\Oracle\Inventory
   from           : n/a
OPatch version    : 10.2.0.4.9
OUI version       : 10.2.0.4.0
OUI location      : c:\oracle\product\10.2.0\db_1\oui
Log file location : c:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch2010-05-18_14-32-05PM.log

Patch history file: c:\oracle\product\10.2.0\db_1\cfgtoollogs\opatch\opatch_history.txt

ApplySession applying interim patch '9393548' to OH 'c:\oracle\product\10.2.0\db_1'
Interim patch 9393548 is a superset of the patch(es) [  9169457 ] in the Oracle Home
OPatch will rollback the subset patches and apply the given patch.

Running prerequisite checks...
Prerequisite check "CheckActiveFilesAndExecutables" failed.
The details are:

Following files are active :
c:\oracle\product\10.2.0\db_1\bin\oraclient10.dll
c:\oracle\product\10.2.0\db_1\bin\orapls10.dll
c:\oracle\product\10.2.0\db_1\bin\oracommon10.dll
c:\oracle\product\10.2.0\db_1\bin\orageneric10.dll
c:\oracle\product\10.2.0\db_1\bin\oraplp10.dll
c:\oracle\product\10.2.0\db_1\bin\oranls10.dll
c:\oracle\product\10.2.0\db_1\bin\oraunls10.dll
c:\oracle\product\10.2.0\db_1\bin\orasnls10.dll
c:\oracle\product\10.2.0\db_1\bin\oranro10.dll
c:\oracle\product\10.2.0\db_1\bin\oran10.dll
c:\oracle\product\10.2.0\db_1\bin\oranl10.dll
c:\oracle\product\10.2.0\db_1\bin\oranbeq10.dll
c:\oracle\product\10.2.0\db_1\bin\orannzsbb10.dll
c:\oracle\product\10.2.0\db_1\bin\oracore10.dll
c:\oracle\product\10.2.0\db_1\bin\orahasgen10.dll
c:\oracle\product\10.2.0\db_1\bin\orahasgen10.dll
c:\oracle\product\10.2.0\db_1\bin\oraocr10.dll
c:\oracle\product\10.2.0\db_1\bin\oraocrb10.dll
c:\oracle\product\10.2.0\db_1\bin\sqlplus.exe
c:\oracle\product\10.2.0\db_1\bin\oraldapclnt10.dll
c:\oracle\product\10.2.0\db_1\bin\oraxml10.dll
ApplySession failed during prerequisite checks: Prerequisite check "CheckActiveFilesAndExecutables" failed.
System intact, OPatch will not attempt to restore the system
--------------------------------------------------------------------------------
...
--------------------------------------------------------------------------------

OPatch failed with error code = 74

C:\OraTemp\9393548>

Resolution

OPatch failure with error code = 74 can be the result of current active sqlplus sessions.

Shutdown all sqlplus sessions, regardless of if they are connected to the database or not.

  • Use the Windows Task Manager to show processes from all users, and look for any sqlplus.exe processes and stop them.

Some system services can also hold Oracle files open and cause this error. Stop the following services during Opatch execution:

  • The Distributed Transaction Coordinator service
  • The Windows Management Instrumentation service
  • The COM+ System Application service
  • On a virtualized system: the VMware Tools service and any other VMware-provided services

Note: In some cases, the Windows system can automatically restart these services after they are manually stopped. It may be necessary to temporarily disable the services while Opatch is executing, and re-enable them after the CPU installation has completed.

Also, When searching for which processes might be tying up the Oracle dlls you can use the tasklist command from the command prompt:

Tasklist /m

This displays all of the dlls being used by processes on the system.  However, if the CPU patch is erroring out and specifically mentions a dll, you can search for it with:

Example DLL lookup:

Tasklist /m oci.dll

This will return a list of all processes using the specified dll file.