Oracle Intelligent Agent Users Guide Release 8.1.5 A67825-01 |
|
This chapter covers generic troubleshooting strategies in the event your Intelligent Agent does not function properly. The following topics are discussed:
Under most circumstances, the Intelligent Agent itself requires very little in the way of configuration. In order to function properly, however, the Agent must be able to communicate with the managing host and managed services. If you are familiar with Oracle and your operating system, using the following abbreviated checklists will likely solve problems that can interfere with Agent operation.
The following checklists cover the areas most likely to affect Agent operation. Agent troubleshooting checklists have been divided according to the two most common platforms on which the Agent is run: Windows NT and UNIX. The Checklists are abbreviated and assume knowledge of both Oracle, the operating system, and related communication protocols. Specific troubleshooting procedures are covered in detail later in this chapter.
If you are running an Agent on a Windows NT system, use the following checklist.
ORACLE_HOME\NET80\admin
directory, and services.ora is in the ORACLE_HOME\NET80\agent
directory.
Compare the services listed with the services which are available on the machine. Please refer to Appendix A, "Configuration Files" for valid sample files.
If services are missing, check the following files for inconsistency or corruption:
The agent is a service and runs by default as SYSTEM. It also needs DLLs from the ORACLE_HOME/BIN
directory. If you need mapped drives in your path, you MUST NOT set them in the SYSTEM path.
To set your own path:
nmi.trace_level=admin
(or 16 if you want maximum information)
nmi.trace_directory=
<any directory in which the Oracle user has write privileges>
ORACLE_HOME/NET80/LOG
directory.
NMI.LOG
should show general agent problems.
NMICONFIG.LOG
should show problems with auto-discovery.
If you are running an Agent on a UNIX system, use the following checklist.
lsnrctl dbsnmp_status
If your agent is running, you should see something similar to the following:
LSNRCTL for Solaris: Version 8.1.3.0.0 - Production on 04-NOV-98 18:44:15 (c) Copyright 1997 Oracle Corporation. All rights reserved. The db subagent is already running.
ORACLE_HOME/NETWORK/log/dbsnmp*.log
file for errors on UNIX.
ORACLE_HOME/AGENT/LOG
as well as ORACLE_HOME/NETWORK/AGENT
.
Compare the services listed with the services which are available on the machine. Please refer to Appendix A, "Configuration Files" for valid sample files.
If services are missing, check the following files for inconsistency or corruption:
If you are trying to do backups, you must run backupts.sql with the dbsnmp/dbsnmp
account.
If after going through the troubleshooting checklists your Agent still is not functioning correctly, use the following section to cover other areas of Agent operation that are less probable causes of Agent operating problems. In addition, many of the steps in the checklists are covered in greater detail for those users who may be less familiar with Oracle and/or the operating system on which the Agent is running. The following questions are coverered in this section:
One of the most common problems that prevents the Agent from starting is TCP/IP configuration. To check whether your TCP/IP setup is configured correctly, issue the following commands at the command line:
telnet <hostname>
If these files have never been used, only sample files will exist in the directory. Either rename or copy the .sam files to just the file name with no extension.
(UNIX) Log in as root and edit the /etc/hosts file.
Example: (Windows NT)
(Replace the information in brackets with the actual host information for that system.)
HOSTS file: <122.111.111.111> <hostname> LMHOSTS file: <122.111.111.111> <netbios name or hostname> #PRE
Note: You can also verify this information through the Windows NT Control Panel -> Network property sheet. |
Note: The *.q files contain information about current jobs and events. Do not delete these files without first removing all jobs and events registered against this Agent. |
Before Release 8.0.4 of the Agent, the NT Agent required the DNS Hostname and the Computer Name to be identical. These parameters can be checked/changed from the following Windows NT Control Panel property sheets.
To verify the computer name:
To verify the DNS Name:
In addition to proper network configuration, which allows nodes in your network to communicate, components of your Oracle environment must also be able to communicate with each other. Net8 provides the session and data communication medium between client machines and Oracle servers, or between Oracle servers. For this reason, proper Net8 configuration is a prerequisite for Agent communication. This section covers the most common problems that can occur when Agent communication fails.
Net8 configuration files are found in $ORACLE_HOME/Net80/admin, or $TNS_ADMIN (Windows NT) or $ORACLE_HOME/network/admin (UNIX).
Primary configuration files are:
See Appendix A, "Configuration Files" for information and examples of the above files.
TNS_ADMIN variable usage during Agent Discovery
All versions of the Unix discovery script allow the use of the TNS_ADMIN variable to locate input files (listener.ora and tnsnames.ora). Only post-7.3.3 versions of the Agent correctly write the output files (snmp_ro.ora and snmp_rw.ora) into TNS_ADMIN, if set.
Beginning with version 8.0.5, the discovery script also reads the TNS_ADMIN value from the NT Registry.
The Agent also uses the TNS alias information found in the listener.ora file. The Agent does so even within an Oracle names environment. This behavior is intentional since an Oracle Names server may be temporarily unavailable and the Agent needs to be able to resolve names at all times. Check the following to make sure the local translation of the TNS alias takes place:
Do not activate the listener on port 1748, since agent is listening on this port. (This is the reason you can use TNSPING against the agent; TNSPING cannot differentiate between a listener and an agent)
The agent requires IPC entries and TNS alias definitions on the server, in addition to alias definitions from the console, to perform alias translations. This correct IPC entries and TNS alias definitions are essential for correct Agent/Console (V1) or Agent/Management Server (V2) communications.
If your Net8 configuration is correct and you are still unable to contact the Agent, the next step is to determine whether services in your Net8 network can be reached. You can use the TNSPING utility on each database you want to access by entering the following at the command prompt:
tnsping <network service name>
If you can connect successfully from a client to a server (or from a server to a server) using TNSPING, the command will return an estimate of the round trip time (in milliseconds) it takes to reach the Net8 service. This indicates Net8 is functioning properly.
Next, add the following alias (agent debug entry) to the Console's tnsnames.ora file:
agent_<sid>.world= (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY =TCP.world) (PROTOCOL = TCP) (Host = <your-agent-hostname>) (Port = 1748) ) ) )
Then ping the agent from the OEM console using:
tnsping agent_<sid>
or
tnsping80 agent_<sid>
If the TNSPING command does not work, add the above alias to the agent machine's tnsnames.ora file and try using TNSPING from the machine on which the agent resides. Every agent must be TNSPING-able using this alias.
Check whether the Agent process is running:
From a command prompt type:
lsnrctl dbsnmp_status
The status returned should read:
The db subagent is already running
If the agent did not start up, use any of the hints listed in the following table:
UNIX | Windows NT |
---|---|
$ORACLE_HOME/network/log/dbsnmp*.log file for errors |
Check for messages written to the NT Event Viewer (under Administrative Tools) since this is where the NT agent writes any problems associated with startup. |
$ORACLE_HOME/network/log/nmiconf.log file for errors. |
$ORACLE_HOME/network/log/nmiconf.log file for errors. |
Check that the Oracle user has write permissions to the following directories: $ORACLE_HOME/network/agent |
Check the properties of the Agent Service to verify the OS account used by the agent (default is 'System') Check that the Agent user has write permissions to the following directories: $ORACLE_HOME/Net8/agent |
Check snmp_ro.ora, snmp_rw.ora, and services.ora for the entries created by the agent. The snmp_ro and snmp_rw.ora files are located in the $ORACLE_HOME/network/admin directory, and services.ora is in the $ORACLE_HOME/network/agent directory. |
Check if snmp_ro.ora, snmp_rw.ora, and services.ora are created by the agent on startup.The snmp_ro and snmp_rw.ora files are located in the $ORACLE_HOME\network\admin directory, and services.ora is located in the $ORACLE_HOME\network\agent directory. |
Compare the services listed with the services which are available on the machine. See Appendix A for valid sample files. If services are missing, check the following files for inconsistency or corruption: |
Compare the services listed with the services which are available on the machine. See Appendix A for valid sample files. If services are missing, check the following files for inconsistency or corruption:
|
Check if you have TCP/IP installed. TCP/IP is a requirement. See Is TCP/IP configured and running correctly? |
Check if you have TCP/IP installed. TCP/IP is a requirement. See Is TCP/IP configured and running correctly? |
If you still do not know why the agent did not start, turn on tracing. (see Tracing the Intelligent Agent) |
Check that you DO NOT have a systems path variable containing external drives. The agent is a service and runs by default as SYSTEM. It also needs DLLs from the $ORACLE_HOME/bin directory. If you need external mapped drives in your path, you MUST NOT set them in the SYSTEM path. To set your own path: |
If you still do not know why the agent did not start, turn on tracing. For more information on setting up Agent tracing, see "Tracing the Agent") |
To test whether an Agent can connect to the database(s) it monitors on a given node, try connecting to each database with the following connect string:
dbsnmp/dbsnmp@address_list
You must perform this test on the node where the Agent resides.
Note: Agents prior to 7.3.3 maintain two permanent connections to its local databases. Post 7.3.3 Agents maintain only one permanent connection. |
To verify whether the Agent has the correct user permissions, see "Installing the Oracle Intelligent Agent on UNIX" .
An OS user needs to be specified for the node and must have the following permissions:
Proper operation of the Oracle Enterprise Manager Job and Event systems requires you run version 7.3.4 or later of the Intelligent Agent. Running a 7.3.3 or earlier version of the Agent will limit available Job and Event system functionality.
Important: It is highly recommended that you upgrade 7.3.3 or earlier agents to 7.3.4 or later versions. |
(Windows NT) Check the NT EVENT VIEWER -> APPLICATIONS -> LOG for any errors starting the DBSNMP process.
(Windows NT and UNIX) Check the $ORACLE_HOME/network/log/nmiconf.log file for discovery errors.
Most likely the job does actually run, but the agent is unable to contact the console to send back notifications. Verify that hostname resolution can occur. Verify that the IP and hostname of the Windows NT machine running the console is in the /etc/hosts file on the Unix box or the hostname can be resolved via DNS/NIS. Retry the job.
To test the TCP/IP resolution, perform the following tests from a command prompt:
ping <hostname> ping <ipaddress>
If the server is running telnet or ftp services(UNIX):
telnet <hostname> ftp <hostname>
Since PING uses IP and not TCP, it is a good way of determining if the problem is in the packet routing.
To determine if the problem is actually with TCP, use the telnet or ftp utilities.
Alternatively, you can perform the following:
The default listening address (TNS format) is:
LISTENING ADDRESS = (ADDRESS=(PROTOCOL= TCP)(Host=machine_name)(Port=7770))
If a job stays in the scheduled status, repeatedly delete it using the DEL key. Restart the job. Sometimes it takes several submits until it starts up a delay of up to a minute until a job starts is common, especially the first time an agent tries to sync with the OEM console with old agents (7.3.2)
The following section covers specific problems, situations, and errors that may be encountered while trying to start the Intelligent Agent.
The Intelligent Agent currently does not support multiple listeners for a single database on one machine. The services.ora contains the information that is used to communicate discovery information from agent to daemon. It does not support multiple listeners for a single database. Due to a limitation in the discovery of the services, there can be only one listener present on the machine per database you wish to monitor. If two listeners are listening for the same database, the agent returns errors, or refuses the discovery.
Prior to Versions 7.3.4, 8.0.3.1.1 on NT, and 8.0.3 on Solaris, the agent had a memory leak, causing it to use more and more memory. This leak occurs if an alias/service is specified which the agent cannot contact (i.e.: database is down, listener is not started, etc.). Each time the agent tries to contact this service, the memory associated with this request is not freed. It also loses handles with the events dbprobe and listenerupdown.
Upgrade the Agent. If this is not possible, make sure only running services are monitored. Verify the memory usage of the Agent. If it becomes too high, stop and start the Agent.
Check the services.ora file to determine which services have been discovered.
All the services the Agent finds on a machine, must be defined in the relevant SQL*Net/Net8 configuration files. If the service(s) are not defined, service discovery will fail and, in the worst case, the agent will hang or return errors.
Windows NT: Beginning with version 8.0.4, the agent searches for service names that begin with 'OracleService' or 'OracleService<SID>'. Every entry beginning with 'OracleService' is considered to be a database running on this machine. Every SID encountered by the Agent must be defined in the relevant SQL*Net/Net8 files.
UNIX: The oratab file is used to determine which SIDs are present. For 7.3.3 Agents and earlier, discovery fails if it encounters a SID that is not accurate (like in a Developer 2000 environment). To work around this problem, the environment variable $ORATAB can be used to access an alternate oratab file which contains only the databases you wish the agent to see.
For the remaining databases, check the oratab file, and the SQL*Net/Net8 files to see if these files exist and that all definitions are present. Make sure that all of the databases are listed in the listener.ora file. For more information, see "Are the Net8 configuration files correct?" and "Is Net8 functioning properly?" .
If the agent already started previously, and now refuses to start correctly, it may be that something has changed in the environment. Usually, a good thing to try is to let the agent completely rediscover all its services again.
Delete the files snmp_ro.ora, snmp_rw.ora, and services.ora and restart the agent. If that does not fix the problem, remove those files and also delete the $ORACLE_HOME/network/agent/*.q files.
Warning: This deletes all of your jobs and events. Make sure and delete these from the Console first.
This error is usually seen when the services on the console and the services discovered by the Agent are out of sync. For example, if you have an event registered against TESTDB and someone changes the name of the database to PRODDB, that Agent and Console are out of sync.
To fix this start by removing all job and event registrations from this service and dropping the node where the services exist from the console. Rediscover the node from the console using the auto-discovery wizard.
NOTE: With 7.3.2 the alias are case sensitive.
If you have a NT Agent please refer to 'Invalid service name' while registering a job or event.
The problem may occur when the NT Service OracleServiceORCL is not running or not there (because the customer creates his own database, with a SID other than ORCL) and the Oracle Performance Utility (not the performance pack but the Oracle8 performance utility) is installed.
If you do not have a database on your machine with SID = ORCL you will experience this problem, as the Oracle Performance Utility has hard coded a BEQ connect descriptor referencing the ORCL SID, in the NT registry during installations. The location of the connect descriptor is (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Oracle80\Performance). Check the value of Username, Password and Hostname.
Solution is to deinstall the Oracle8 Performance utility.
If you have jobs or events scheduled at a very low interval (30 seconds), this causes activity on your system. For example, if you have the event 'USER BLOCKS' registered, the agent checks concurrent/waiting locks by building temporary table, deleting the tables, building them again - for every check.
Solution: Lower your interval or disable logging on the underlying table.
The fact that only one listener is running does not mean that other listeners do not exist! The agent finds all listeners that are configured (via listener.ora files), not just the ones running. Also, the agent does not restrict its search to the directory pointed by $TNS_ADMIN. It checks all possible locations for listener.ora files.
If the listener picked up by the agent is not what you intended, correct the problem and restart the agent.
This error can occur if the Agent cannot write to $ORACLE_HOME\network\admin. Refer to the $ORACLE_HOME\netowrk og\nmiconf.log for errors. For more information on Agent startup problems, see "Did the Agent startup successfully?".
In order for the agent to execute jobs on a managed node, the following conditions must be met:
This usually only happens if you have a databases prior to 7.3.3 on the machine. From V7.3.3 onwards, a script called CATSNMP.SQL is included in the CATALOG.SQL dictionary script. This script is responsible for creating the DBSNMP user the agent needs to connect. Older databases did not have this script yet.
Verify if the user 'DBSNMP' exists. If not, run the catsnmp.sql script.
This indicates a problem with the TCP/IP layer. Most obvious cause for this is that the IP address and the hostname do not reference the same physical machine.
Verify that TCP/IP is configured and running correctly. (See Is TCP/IP Installed and Running Correctly)
You may receive this error while executing a TCL script using the oratcl verb oralogon through the Software Developer's Kit. "Oralogin failed in orlon" means that the connect string is either wrong or for some reason, the account used cannot logon to the database.
When attempting to start the Intelligent Agent, the following error occurs: Listener Not Found for SID. The SID listed is always the last SID in the Oratab file. The Listener.ora and tnsnames.ora files contains valid TNS descriptors for the SIDs. The oratab file does not have invalid SIDs and all SIDs have a dbsnmp account. This has been fixed for Agent versions 7.3.4 and later.
The 7.3.3 nmiconf.tcl script parses the listener.ora file looking for uppercase: ADDRESS, SID_LIST_, SID_DESCRIPTION and SID_NAME. Change the parameters listed above to uppercase, and discovery works.
This message comes from the discovery script, nmiconf.tcl. Make sure you have $ORACLE_HOME environment variable set to the ORACLE_HOME of the Agent and re-start the agent.
If you have more than one database on a single node, then you need to make sure that each instance has a unique GLOBAL_DBNAME in the listener.ora. You may have to define this manually in the listener.ora.
There are in fact two hostname definitions on NT: One NETBios one, used for the NT's internal Named Pipes protocol, which is always installed. The other is the TCP/IP hostname, which is only configurable when you install TCP/IP on NT.
To find the NT NetBios hostname:
To find the TCP/IP hostname:
On an NT server, you can 'ping' the two names, even if they are configured different. Other clients, however, only 'ping' real TCP/IP hostnames. If the Agent is using local IPC connections, it uses Named Pipes. Therefore the NetBios name, while all external connections will use the TCP/IP name.
A mismatch in these names leads to 'unable to contact agent', or forever pending jobs in the console. Therefore, make sure that the NetBios and the TCP/IP hostname are identical.
If you have a 8.0.4 Agent, you may experience this problem. If you have a default domain other than ".world" the agent tries to append a ".world" to the database name during discovery. For example, if your default domain is nl.oracle.com and you define your GLOBAL_DBNAME = database.nl.oracle.com, the agent defines the database name to be database.nl.oracle.com.world. This problem only occurs when the Agent and Console reside on the same machine (they share the some configuration files).
The workaround is to append ".world" to all services that do not currently have a specified domain.
This problem has been fixed for Agent versions 7.3.4 and higher. For Agent versions 7.3.3 and lower, the following workaround can be used.
Check the listener.ora file, and make sure that no $ORACLE_HOME parameter is specified in the SID_LIST section. Specifying an $ORACLE_HOME in the SID_LIST section prevents the Agent from finding the requisite files for service discovery.
The problem may occur when the NT Service OracleServiceORCL is not running or not there (you may have created a database, with a SID other than ORCL) and the Oracle8 Performance Utility is installed.
If you do not have a database on your machine with SID = ORCL you will experience this problem, as the Oracle8 Performance Utility has hard coded a BEQ connect descriptor referencing the ORCL SID, in the NT registry during installations. The location of the connect descriptor is (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Oracle80\Performance). Check the value of Username, Password and Hostname.
The solution is to deinstall the Oracle8 Performance utility.
If this does not fix the problem, try setting the variable automatic_ipc = off in the sqlnet.ora file, comment out all IPC addresses in the listener.ora file, and restart the agent.
If you get this error while trying to run a SQL*Plus job, then you have encountered a SQL*Plus bug. If you start SQL*Plus on the command line and connect using the connect string INSTEAD of the alias as described in the tnsnames.ora ile you see the same thing, a crash of SQL*Plus. It had to do with the connect string size exceeding the allocated connect string buffer size. For more information, see ORA-12163: 'TNS:connect descriptor is too long'.
Define a connect string for your database in your tnsnames.ora file that is less than 255 characters. Then re-start your agent, and re-discover this node from the console.
This may occur if there are externally mapped drives on the system path variable. For more information see Did the Agent startup successfully? .
You many also be encountering a problem that is specific to Intelligent Agent 7.3.3 and other versions of the Oracle database (i.e. 7.3.2) You may identify that this is happening by checking the Windows NT Control Panel -> Services dialog. The Oracle Agent shows that the status is started, but when you highlight it to shut it down, the Stop button becomes disabled, along with the Start, Pause, and Continue buttons.
You cannot install IA 7.3.3 with a 7.3.2 db on Windows NT because these two products use two different versions of the RSFs (7.3.3 and 7.3.2). Both these RSFs can not be installed together.
Please upgrade your database to 7.3.3 with SQL*Net 2.3.3. If you cannot do this, then you have to remove OEM 1.3.5 & IA 7.3.3, make sure you have SQL*Net 2.3.2 client/server/adaptors installed. Install IA 8.0.3 and use OEM 1.4. IA 8.0.3 uses the RSF 803 and NET8, so there ia no conflict with Oracle 7.3.x.
The Windows NT user that you created for the agent (see Agent Configuration, Configuration Guide) needs read/write permissions to the $ORACLE_HOME\net80\agent directory (and TEMP directory, for some applications) and read permissions to the SYSTEM32 directory
Verify that the NT user has these permissions.
This happens if Oracle7 and Oracle8 are installed in the same ORACLE_HOME on NT. This is NOT a supported configuration. The agent tries to start, gives some sort of time-out error, saying that it failed to start, and then gets ina 'limbo' state, where you are unable to stop or start the Agent service anymore.
First start the Agent, then start the Oracle8 services
If you run a scheduled job every minute and receive the error on NT console "Event ID 2009, Number of sessions exceeded 2048" Verify that there are 2048 users logged in by viewing, NT-PROGRAMS-ADMIN TOOLS-WIN NT DIAGNOSTICS, CHOOSE THE NETWORK TAB. The Intelligent Agent is not releasing sessions when a scheduled job is finished running.
The workaround is to stop and start Agent every couple of hours.
or
Upgrade to the 8.0.4 agent
This occurs when you install OEM 1.5 on an NT with a 8.0.3 database. The required support files are upgraded from 8.0.3 to 8.0.4 during the install.
If you then try to start the agent, you will receive an error stack. If you reboot the NT machine, then things really start to act funny: No database, an OEM console but no Agent.
This is clear and documented: On NT, only the first two numbers are supported. Trying to install two version different in the third digit doesn't work. Only, in the number OEM 1.5, one is not aware that you are also installing 8.0.4 RSF's.
First check that all of the SQL*Net files are present and correctly defined. You can then debug discovery by editing your oratab file contains only a valid SID with a listener running. After you get this working, you can add the remaining entries in the oratab file to see which entry is causing the problem.
Check the $ORACLE_HOME/network/log/nmiconf.log files for errors.
This is a well-known bug of Solaris 7.3.3 and has already been fixed in 7.3.4 and 8.0.3. You get this error if there are non-database entries in the oratab file. i.e. client side installs
You should also have received the following message when starting the agent:
No listener found for SID <sid>
There are two workarounds for this:
This is problem with the Intelligent Agent 7.3.3. Your services.ora file is empty. When looking at the snmp_ro.ora file-the SNMP.VISIBLESERVICES is empty.
The "cannot find listener for XXXX" usually comes from a SID in the oratab file that does not have a listing in the listener.ora file. This means that the listener is not listening on this specific SID. Unless this is a SID that you are trying to connect the agent to, this is a warning and should not stop the discovery process for the other SIDs.
Please check if the case sensitivity is respected in the oratab and the listener.ora for all the SIDs, and make sure that the oratab file does not have SIDs with a * or any other prefix. An example of this problem is when an SID used for some other Oracle product that starts with a * and this stopped discovery.
Copy the snmp.address.<host_name> parameter from your $ORACLE_HOME\network\admin mp_ro.ora file. Paste this address and parameter into your $ORACLE_HOME\network\admin mp_rw.ora file. In snmp_rw.ora, reduce the size of this connect string by removing the address entries for IPC. (NMP and SPX may also be removed.)
Shutdown/restart the agent. See examples below.
Note: The parameter snmp.address in no longer found in snmp_ro.ora starting with the 7.3.4/8.0.3 Agents. Therefore, you will have to use this example to add a new variable to your snmp_rw.ora. |
EXAMPLES:
Entry to be copied out of snmp_ro.ora:
snmp.address.ORCL_MACHINE-PC = (DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=IPC)(KEY=oracle.world))(ADDRESS=(PROTOCOL=IPC)(KEY=ORCL))(AD DRESS=(COMMUNITY= TCP.world)(Host=machine-pc) (PROTOCOL=TCP)(Port=1521))(ADDRESS=(COMMUNITY=TCP.world)(Host=machine-pc) (PROTOCOL=TCP)(Port= 1526)))(CONNECT_DATA=(SID=ORCL)(SERVER=DEDICATED)))
Modified entry in snmp_rw.ora:
snmp.address.ORCL_machine-PC = (DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(COMMUNITY=TCP.world)(Host = machine-pc)(PROTOCOL= TCP)(Port= 1521))(ADDRESS=(COMMUNITY= TCP.world)(Host = machine-pc)(PROTOCOL= TCP)(Port=1526)))(CONNECT_DATA=(SID=ORCL)(SERVER=DEDICATED)))
This is actually a Net8 Listener error.
The following is documented in the 8.0.3.0.0 Intel NT release notes for the Net8 Listener. When a client connects to an Oracle8 server in dedicated server mode, WINSOCK2 Shared Sockets feature is used so that the client connection is routed from the listener to the database server. This feature improves the connection time, because the client does not need to close the socket connection with the listener and establish a new connection with the database server.
With the use of Shared Sockets, threads also use the same port as the listener. If you shut down the listener and try to start it up again for the same port, the listener does not start up if the port is in use due to any open connections with the database. Ensure that no client is connected to the database before starting up the listener. Note that if you are using a listener with a different port number you are able to start it up.
See Oracle Networking Products Getting Started for Windows Platforms for more information about the listener.ora file and the LSNRCTL80 utility. Oracle Corporation attempted to overcome the restriction by using the WINSOCK2 option to allow the re-use of a port, but the option does not work reliably. Oracle Corporation is currently working with Microsoft Corporation to resolve this issue.
For additional information about the reload command, see the Net8 Administrator's Guide.
While submitting a job, validation fails with "failed to find address for Agent_node". And then the VOC-04816 Invalid Destination. This might also be caused by an invalid address in the tnsnames.ora located on the console.
Upgrade your agent to at least 7.3.3. or later.
Verify that your SQL*Net configuration files are correct?
If you see an OS error when starting the agent, check to see if it is actually an agent error as described in snmimsg.mc. Due to one of the Windows APIs not working as documented, the agent fails to print out the real cause of the error.
Use the Event Viewer in the Administrative tools group of Windows NT. You should find the true cause of the problem documented. The source for the agent errors are under the service name "dbsnmp". Highlight the most recent dbsnmp entry in the list. Double click on the event to get the actual results.
If snmpd is running on the unix box, set the following in the server's /etc/snmpd.conf:
smux 0.0 "" <ipaddress of server>
If the nms-4 error remains, turn on logging in the snmpd.conf file with the following parameter:
logging file=/usr/tmp/snmpd.log enabled
The log file gives more information about what could be happening. For example, a space between the double quotes in the smux line can cause the application to misinterpret the space as a password. The double quotes by themselves - mean no password.
There are two possible causes for this error:
Only have one agent on a machine.
To confirm port is being used by someone else
^---- this is port #
If any result shown on screen that ends in "LISTENING" then the port is in use.
Then do this.
--> get process numbers
LSNRCTL> dbsnmp_start
If it still fails to start the agent, go through steps again, but before re-starting the AGENT, do this.
LSNRCTL> dbsnmp_start
This definitely re-starts the agent, but you removed all of the job and events queues it was using in the past!
If all else fails, re-booting the machine should definitely free up the port.
You may also have to relink the agent to clear this problem. Please see the Oracle Enterprise Manager Configuration Guide and README for more information.
This message indicates that the SNMP master agent (the process on UNIX that controls the SNMP protocol) could not be contacted. By default the agent listens and works over SQL*Net, but the agent can also work over SNMP on UNIX systems. The SNMP interface is not yet build in the NT implementation.
This message can safely be ignored unless you are trying to communicate with a Master Agent.
The 'dbsnmp' user could not be located.
Run the catsnmp.sql script for that database with either the SYS or INTERNAL accounts.
The agent tries to contact the Names Server, but can not get in contact with it. This can happen if a Names Server is indeed installed but not used.
Add a line in the file snmp_rw.ora
NMI.REGISTER_WITH_NAMES = FALSE
This happens if there mismatches between the ID's in the '*.q' files in the $ORACLE_HOME/network/agent directory. Delete all the '*.q' in the $ORACLE_HOME/network/agent directory. Rebuild your repository. Restart the agent.
Beginning with 7.3.3, the agent reads information from the snmp_ro.ora and snmp_rw.ora files in the $ORACLE_HOME\network\admin directory.
Example of modifications of the snmp_rw.ora file:
NMI.TRACE_LEVEL = (OFF | USER | ADMIN | 16 )
The NMI.TRACLE_LEVEL settings mirror those used for SQL*Net.
Optional:
NMI.TRACE_FILE = agent Default=dbsnmp.trc NMI.TRACE_DIRECTORY = C:\TEMP Default=$ORACLE_HOME/network/trace
(Any existing directory where the agent has write permissions)
The log file, $ORACLE_HOME/network/log/nmi.log, is written by the agent on every startup, even if tracing is not turned on. It contains the name and version of the agent and the name and location of the agent's configuration files. If tracing is turned on, it also contains problems encountered with the database and listener connections.
The log file, $ORACLE_HOME/network/log/nmiconf.log, is created on the first start up of the agent and appended to every time after that. The auto discovery is done by the Tcl script, nmiconf.tcl (hence, the log file name). This file is written to only during startup. $ORACLE_HOME/agentbin/ORATCLSH is a special-purpose TCL shell that supports all standard TCL verbs (supported in TCL75.dll) plus a large subset (not all) of the ORATCL verbs supported by the OEM Agent. ORATCLSH is not a general purpose utility and may only be used in combination with the OEM Agent as it depends on files and data structures maintained by the OEM Agent.
There is no documentation of ORATCLSH and it has never been part of the supported feature set of the OEM Agent. It is provided strictly as a debugging tool to help Oracle customers and developers in developing OEM job and event scripts. The executable ORATCLSH is provided for debugging your TCL scripts. Before executing ORATCLSH, set the environment variable TCL_LIBRARY to point to $ORACLE_HOME/network/agent/tcl, the location of the init.tcl file.
You may also turn Tcl tracing on by setting the environment variable ORATCL_DEBUG and turning tracing on in the snmp_rw.ora file. The ORATCL_DEBUG must be set to the $ORACLE_HOME/network/trace directory. You must shut down and re-start the agent for these parameters to take effect. TCL tracing creates a file, oratcl.trc in the above location. Every time an event is run an entry is added to the oratcl.trc file.