Listener status is down (or pending) in Enterprise Manager 24 November 2009Posted by David Alejo Marcos in Enterprise Manager.
Tags: Agent, Grid Control
This solution works for both Agents uploading data to a Grid Control Repository or to DBConsole.
We have a 3-nodes RAC and we are using dbconsole to monitor our production systems. We will be deploying Grid Control any time soon (providing Oracle fixes couple of bugs we discovered some time ago).
Until then, dbconsole is good enough.
Our configuration is as follows:
1.- Linux x86-64
2.- Oracle ASM (using ASMLib) 10.2.0.4
3.- Oracle Enterprise Edition 10.2.0.4.1
As you may know, Oracle recommends to run the listener from the ASM home instead of the database home and to have a different set of binaries for ASM in case you need to upgrade ASM (or you have more than one database running on the same server using different Oracle versions).
We run dbconsole from the Database Oracle home. This is as expected, but this leads us towards our problem, as the default location for SQL*Net configuration on RAC is the Oracle Home for the database.
For some time we have to deal with not knowing if the listener was down (as displayed on dbconsole) or pending (which normally indicates the agent is not uploading information to the repository.
Steps to deal with the problem are:
1.- Stop dbconsole/agent on all nodes.
2.- localte the target.xml file (normally under $ORACLE_HOME/sysman/emd/targets.xml if using dbconsole or $ORACLE_HOME/agent/sysman/emd/targets.xml if using Grid Control).
3.- make a backup of the file (always good practice)
4.- edit the file:
you need to search for an entry with the following format:
<Target TYPE=”oracle_listener” NAME=”LISTENER_xxxxxx”>
then you need to change the path on two properties:
<Property NAME=”ListenerOraDir” VALUE=”xxxxxxxxxx”/>
<Property NAME=”OracleHome” VALUE=”yyyyyyyyyyy”/>
where xxxxx should be your $ORACLE_HOME/network/admin
and yyyyyyy should be your $ORACLE_HOME
5.- start dbconsole/agent on all nodes
6.- check the status of those listeners are up.
I read some documents on Oracle Support (old Metalink) and none work for us.
One of them was interesting by the fact of suggesting to add an environment variable (TNS_ADMIN) on the server. This is not recommended (at least on our systems) as we run ASM and DB and, hopefully one day, Grid Control Agent, and we like to keep things separated.
As always, comments are welcome.