John’s Oracle Experiences

My everyday experiences with Oracle products

Archive for January 20th, 2009

OPatch cannot find the required command ‘fuser’ from Property file and your PATH

Posted by John Paul van Helvoort on January 20, 2009

As the Error shows a fairly good reason why the OPatch can’t proceed installing. To solve this still can take some time when you don’t know the exact place OPatch is searching for this file.
The reason why fuser is used by OPatch is to check if there is any running instance from the current ORACLE_HOME.

I ran into this stupid error while updating an Enterpise Manager Grid Control 10.2.0.1 to 10.2.0.4 on SuSE Enterprise Server 10 SP2 32bit.
When preforming this upgrade, you need to OPatch the database ORACLE_HOME with an one-off patch 4329444.

This is the error returned :

oracle@xxx:/u04/patch_10204/4329444> /u00/oracle/product/10.2.0/db10g/OPatch/opatch apply
Invoking OPatch 10.2.0.1.0

Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c) 2005, Oracle Corporation.  All rights reserved..

Oracle Home       : /u00/oracle/product/10.2.0/db10g
Central Inventory : /u00/oracle/oraInventory
   from           : /u00/oracle/product/10.2.0/db10g/oraInst.loc
OPatch version    : 10.2.0.1.0
OUI version       : 10.2.0.1.0
OUI location      : /u00/oracle/product/10.2.0/db10g/oui
Log file location : /u00/oracle/product/10.2.0/db10g/cfgtoollogs/opatch/opatch-2009_Jan_19_13-15-31-CET_Mon.log

Apply Session failed: OPatch cannot find the required command 'fuser' from Property file and your PATH.
Property file = 'properties'
PATH = 'null'

System intact, OPatch will not attempt to restore the system

OPatch failed with error code 73

In search of Oracle’s recommendations on this topic, i came across this documentation :

OPatch cannot find system commands like fuser, make

Cause: The OPatch utility uses fuser on UNIX systems to check for active Oracle instances. On certain hp-ux systems, only a super-user can run fuser.

Action: Do the following steps to resolve this problem:
Set /tmp in your PATH.

For more information refer to section “Check for System Commands”.

Create an empty file named fuser.
Shut down the Oracle instances.
Run the OPatch utility.

( reference : http://docs.huihoo.com/oracle/docs/B19306_01/em.102/b16227/oui8_opatch.htm#BABJAAIB )

When this did not solve the problem, i found a solution for the problem by creating a symbolic link on my system.
( this has to be done as the root user )

xxx:/ # ln -s /bin/fuser /sbin/fuser

Now i tried my command again with succes !

oracle@xxx:/u04/patch_10204/4329444> /u00/oracle/product/10.2.0/db10g/OPatch/opatch apply
Invoking OPatch 10.2.0.1.0

Oracle interim Patch Installer version 10.2.0.1.0
Copyright (c) 2005, Oracle Corporation.  All rights reserved..

Oracle Home       : /u00/oracle/product/10.2.0/db10g
Central Inventory : /u00/oracle/oraInventory
   from           : /u00/oracle/product/10.2.0/db10g/oraInst.loc
OPatch version    : 10.2.0.1.0
OUI version       : 10.2.0.1.0
OUI location      : /u00/oracle/product/10.2.0/db10g/oui
Log file location : /u00/oracle/product/10.2.0/db10g/cfgtoollogs/opatch/opatch-2009_Jan_19_13-16-39-CET_Mon.log

ApplySession applying interim patch '4329444' to OH '/u00/oracle/product/10.2.0/db10g'
Invoking fuser to check for active processes.
Invoking fuser on "/u00/oracle/product/10.2.0/db10g/bin/oracle"

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u00/oracle/product/10.2.0/db10g')

Is the local system ready for patching?

Do you want to proceed? [y|n]

Posted in Application Server, Database, Linux | Leave a Comment »

Can’t delete oci.dll from an old ORACLE_HOME

Posted by John Paul van Helvoort on January 20, 2009

While removing and reinstalling a Management agent. I ran into the problem where after a successful uninstall using The Oracle Universal Installer. I was not able to remove the almost empty directory saying the file oci.dll is still in use, so an Access Denied error is displayed.

After a restart the same problem presented itself over and over again.

After some research i found that stopping the “Distributed Transaction Coordinator” service before deleting the old directory ( with oci.dll in it ) will help. After that the service can be started again offcourse.

Background information on the service:

The Distributed Transaction Coordinator (MSDTC) service is a component of modern versions of Microsoft Windows that is responsible for coordinating transactions that span multiple resource managers, such as databases, message queues, and file systems. MSDTC is included in Windows 2000 and later operating systems, and is also available for Windows NT 4.0.

MSDTC performs the transaction coordination role for components, usually with COM and .NET architectures. In MSDTC terminology, the director is called the transaction manager.

Posted in Application Server | Leave a Comment »