| Oracle® Database Net Services Administrator's Guide 10g Release 1 (10.1) Part Number B10775-01 |
|
|
View PDF |
Oracle Net Services provides methods for understanding and resolving network problems through the use of log and trace files. These files keep track of the interaction between network components as errors occur. Evaluating this information will help you to diagnose and troubleshoot even the most complex network problems.
This chapter describes common network errors and outlines procedures for resolving them. It also describes methods for logging and tracing error information to diagnose and troubleshoot more complex network problems. This chapter contains these topics:
If an attempt to make a basic peer-to-peer (single protocol network) connection returns an ORA Error, this section may help you diagnose the cause of the problem.
Any underlying fault, noticeable or not, is reported by Net8 Services with an error number or message that is not always indicative of the actual problem. This section helps you determine which parts of Net8 Services do function properly rather than the parts that do not work. It also helps you to decide in which of the following categories the fault belongs:
Oracle software
Operating system layer
Other network layers
Testing the various network layers progressively should in most cases uncover any problem.
|
Note: You may need assistance from your server administrator to follow the instructions in this section. |
Answer the following questions:
Is any other system (workstation/server) able to connect to the server using Net8?
Has the server, database, or listener configuration remained the same for some time?
If you answered YES to any of the preceding questions/statements, then skip this section and continue to "Client Diagnostics".
If you are unsure, or answered NO to any of the preceding questions, then continue.
Diagnosing Net8 Services on the server involves the following tasks:
To check that the database is up, login to the database and connect with a valid username and password. For example:
SQLPLUS system/manager
A message appears, confirming that you are connected with the database. If you receive the following errors, ask your Database Administrator to assist you:
To perform a loopback test from the server to the database:
Ensure that the listener.ora, tnsnames.ora, and sqlnet.ora files exist in the correct locations, as described in "Localized Configuration File Support".
Follow the instructions in "Testing Configuration on the Database Server" to perform a loopback test.
If the loopback test continues to fail, continue to the next step.
If the loopback test passes, skip to "Client Diagnostics".
Check the Problem/Solution Database Web site at http://support.oracle.com for more specific information on the error received, or contact Oracle Worldwide Support.
At this point, you know the serverside listener works properly, because you could verify at least one of the following statements:
The database server passed a loopback test, showing that the connection worked.
Other computers connect also using Net8 Services to this same database.
Connections from this workstation worked previous to making changes on this computer, such as the installation of a new product or a modification to the network configuration.
To perform diagnostics on the client:
Check that you have installed the same protocol support as was installed on the database server.
On UNIX you can use the ADAPTERS utility to verify protocol support. On the database server, run the adapters 'which oracle' command from $ORACLE_HOME/bin to display the protocol support, naming methods, and security options linked with the oracle executable. The adapters utility displays output similar to the following:
Oracle Net transport protocols linked with ./oracle are:
IPC
BEQ
TCP/IP
SSL
RAW
Oracle Net naming methods linked with ./oracle are:
Local Naming (tnsnames.ora)
Oracle Directory Naming
Oracle Host Naming
NIS Naming
Oracle Advanced Security options linked with ./oracle are:
RC4 40-bit encryption
RC4 56-bit encryption
RC4 128-bit encryption
RC4 256-bit encryption
DES40 40-bit encryption
DES 56-bit encryption
3DES 112-bit encryption
3DES 168-bit encryption
AES 128-bit encryption
AES 192-bit encryption
AES 256-bit encryption
MD5 crypto-checksumming
SHA crypto-checksumming (for FIPS)
SHA-1 crypto-checksumming
Kerberos v5 authentication
CyberSAFE authentication
RADIUS authentication
ENTRUST authentication
On the client, run the adapters command from $ORACLE_HOME/bin to display the configured Oracle protocol support, naming methods, and security options. The ADAPTERS utility displays output similar to the following:
Installed Oracle Net transport protocols are:
IPC
BEQ
TCP/IP
SSL
RAW
Installed Oracle Net naming methods are:
Local Naming (tnsnames.ora)
Oracle Directory Naming
Oracle Host Naming
NIS Naming
Installed Oracle Advanced Security options are:
RC4 40-bit encryption
RC4 56-bit encryption
RC4 128-bit encryption
RC4 256-bit encryption
DES40 40-bit encryption
DES 56-bit encryption
3DES 112-bit encryption
3DES 168-bit encryption
AES 128-bit encryption
AES 192-bit encryption
AES 256-bit encryption
MD5 crypto-checksumming
SHA-1 crypto-checksumming
Kerberos v5 authentication
RADIUS authentication
ENTRUST authentication
|
Note: RAW is an internal protocol used by Oracle Net. |
|
See Also: Oracle UNIX operating system-specific Administrator's Reference for further information about theadapters utility |
Check base connectivity for underlying network transport. Net8 technology depends on the underlying network for a successful connection.
| Protocol | Verify that you can... |
|---|---|
| TCP/IP | Use terminal emulation or file transfer utilities, (PING, FTP, TELNET) from the client to the database server. |
| Named Pipes |
|
To ensure that both the Net8 foundation layer and the appropriate Oracle protocol support are present, verify that all Net8 Services software for the client has been installed.
Ensure that the client computer has the tnsnames.ora and the sqlnet.ora files exist in the correct locations.
If you have any other working client computers connecting to the selected Oracle database, back up your existing files and copy both the working tnsnames.ora and sqlnet.ora files from the working computer onto the non-working client workstations. This eliminates the possibility of errors in the files.
Test the Net8 foundation layer.
|
Note: Do not use the TNSPING utility. The TNSPING utility works like the TCP/IP PING utility and does not create and open a socket, nor does it connect with the listener. It ensures that the listener is present on the database server. |
If the connection still fails:
Use tracing, as described in section "Troubleshooting Network Problems Using Log and Trace Files"
Check the Problem/Solution Database Web site at http://support.oracle.com for a specific diagnostics bulletin on the error received
Contact Oracle Support Services
Due to the complexity of network communications, network errors may originate from a variety of sources, for a variety of reasons. If an error occurs, applications such as SQL*Plus, that depend on network services from Oracle Net Services, will normally generate an error message.
A list of the most common network error messages follows:
ORA-03121: no interface driver connection - function not performed
TNS-12500/ORA-12500: TNS: listener failed to start a dedicated server process
ORA-12514: TNS:listener does not currently know of service requested in connectdescriptor
ORA-12520: TNS:listener could not find available handler for requested type of server
ORA-12521: TNS:listener could not resolve INSTANCE_NAME given in connect descriptor
ORA-12525: TNS:listener has not received client's request in time allowed
T:
X:
P:
The username and password were specified from a client computer that had no local Oracle database installed.Specify a connect string.
tnsnames.ora configuration file.Verify that a tnsnames.ora file exists.
Verify that there are not multiple copies of the tnsnames.ora file.
In the tnsnames.ora file, verify that the net service name specified in your connect string is mapped to a connect descriptor.
Verify that there are no duplicate copies of the sqlnet.ora file.
If you are using domain names, verify that your sqlnet.ora file contains a NAMES.DEFAULT_DOMAIN parameter. If this parameter does not exist, you must specify the domain name in your connect string.
If you are not using domain names, and this parameter exists, delete it or disable it by commenting it out.
If you are connecting from a login dialog box, verify that you are not placing an "@" symbol before your connect net service name.
Activate client tracing and repeat the operation.
Verify that the database service or net service name entry exists in the directory that this computer was configured to use.
Verify that the sqlnet.ora file includes the following entry:
NAMES.DIRECTORY_PATH=(ldap, other_naming_methods)
SQLNET.INBOUND_CONNECT_TIMEOUT parameter in the sqlnet.ora file. This error may be a result of network or system delays, or it may indicate that a malicious client is trying to cause a denial-of-service attack on the database server.
|
See Also: "Configuring the Listener and the Oracle Database To Limit Resource Consumption By Unauthorized Users" further information about setting theSQLNET.INBOUND_CONNECT_TIMEOUT parameter |
Turn on tracing to determine where clients are timing out.
Reconfigure the SQLNET.INBOUND_CONNECT_TIMEOUT parameter in sqlnet.ora to a larger value.
If you suspect a malicious client, then perform these steps:
Locate the IP address of the client in the sqlnet.log file on the database server to identify the source.
For example, the following sqlnet.log excerpt shows a client IP address of 10.10.150.35.
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Solaris: Version 10.1.0.2.0
Oracle Bequeath NT Protocol Adapter for Solaris: Version 10.1.0.2.0
TCP/IP NT Protocol Adapter for Solaris: Version 10.1.0.2.0
Time: 03-JUL-2002 13:51:12
Tracing to file: /ora/trace/svr_13279.trc
Tns error struct:
nr err code: 0
ns main err code: 12637
TNS-12637: Packet receive failed
ns secondary err code: 12604
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.150.35)(PORT=52996))
Beware that an IP address can be forged.
If the time out occurs before the IP address can be retrieved by the database server, then enable listener tracing to determine the client that made the request.
Restrict access to the client. For example, you can configure parameters for access rights in the sqlnet.ora file.
The maximum number of processes allowed for a single user was exceeded
The listener does not have execute permission on the oracle program
The associated Windows service is not started
In some cases, these errors can be caused by the same conditions which cause TNS-12549/ORA-12549, TNS-00519, TNS-12540/ORA-12540, TNS-00510, and TNS-12560/ORA-12560 errors.
Increase the number of processes by setting the PROCESSES parameter in the database initialization file to a larger value.
Check the listener.log file for detailed error stack information.
Wait a moment and try to connect a second time.
Check which services are currently known by the listener by executing the Listener Control utility STATUS or SERVICES command.
Check that the SERVICE_NAME parameter in the connect descriptor specifies a service name known by the listener.
Check for an event in the listener.log file.
SERVICE_NAME/INSTANCE_NAME, or the database instance is not registered with the listener.If (server=value) is set is in the connect descriptor, ensure that the value is set to the appropriate service handler type for the database, that is, dedicated for dedicated server or shared for dispatchers. You can use the Listener Control utility SERVICES command to see what service handlers are currently registered with the listener.
If USE_DEDICATED_SERVER is set to ON in the sqlnet.ora file, then ensure the database is configured to use dedicated servers. If it is not, set this parameter to off.
Ensure that the database instance is running. If the instance not running, start it so that it can register with the listener.
INSTANCE_NAME in the connect descriptor is incorrect, or the database instance is not registered with the listener.Check to make sure the service name specified in the connect descriptor is correct.
Ensure the database instance is running. If the instance not running, start it so that it can register with the listener. You can use the Listener Control utility SERVICES command to see what instances are currently registered with the listener.
INBOUND_CONNECT_TIMEOUT_listener_name parameter in the listener.ora file. This error may be a result of network or system delays, or it may indicate that a malicious client is trying to cause a denial-of-service attack on the listener.
|
See Also: "Configuring the Listener and the Oracle Database To Limit Resource Consumption By Unauthorized Users" for further information about setting theINBOUND_CONNECT_TIMEOUT_listener_name parameter |
INBOUND_CONNECT_TIMEOUT_listener_name parameter in listener.ora to a larger value.
If you suspect a malicious client, then perform these steps:
Locate the IP address of the client in listener.log to identify the source.
For example, the following listener.log excerpt shows a client IP address of 10.10.150.35.
03-JUL-2002 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.150.35)(PORT=53208)) * establish * <unknown sid> * 12525 TNS-12525: TNS:listener has not received client's request in time allowed TNS-12604: TNS: Application timeout occurred
Beware that an IP address can be forged.
Restrict access to the client. For example, you can configure parameters for access rights in the sqlnet.ora file.
Number of open connection that Oracle Net can process simultaneously
Number of memory buffers which can be used simultaneously
Number of processes a particular database instance is allowed
The first two are examples of hard limits. The third is an example of a limit which can be increased by setting PROCESSES parameter in the database initialization file to a larger value. In this case, a TNS-12500/ORA-12500 error is also returned. In some cases, these errors can be caused by the same conditions which cause TNS-12549/ORA-12549 and TNS-00519 errors.
Wait for the open connections to close and retry. If the error persists, then check the sqlnet.log or listener.log file for detailed error stack information.
Ensure that the supplied destination address matches one of the addresses used by the listener.Verify that this is not a version compatibility problem.
Possible limits include:
The maximum number of processes allowed for a single user
The operating system is running low on paging space
Increase the number of processes by setting the PROCESSES parameter in the database initialization file to a larger value.
Check the sqlnet.log or listener.log file for detailed error stack information, such as an operating system error code to help identify which quota has been exceeded.
In some cases, these errors will be caused by the same conditions which cause TNS-00510, TNS-00519, TNS-12540/ORA-12540, TNS-12549/ORA-12549 errors.
Directory naming issues associated with connectivity errors such as ORA-12154, ORA-12543, or ORA-12541 for database service or net service name entries in a directory server require analysis of the data. You can analyze the data contained within a directory server with the ldifwrite command line tool.
ldifwrite enables you to convert all or part of the information residing in a directory server to LDAP Data Interchange Format (LDIF). The ldifwrite tool performs a subtree search, including all entries following the specified distinguished name (DN), including the DN itself.
The ldifwrite tool syntax is as follows:
ldifwrite -c net_service_name/database_service -b base_DN -f ldif_file
Table 16-1 ldapwrite Arguments
| Argument | Description |
|---|---|
-c net_service_name/database_service |
Specify the net service name or database service name that will connect you to the directory server. |
-b base_DN |
Specify the base of the subtree to be written out in LDIF format. |
-f ldif_file |
Specify the input file name. |
The following example writes all the directory naming entries under dc=us,dc=acme,dc=com to the output1.ldi file:
ldifwrite -c ldap -b "dc=us,dc=acme,dc=com" -f output.ldif
Here are some tips you may find helpful when you are having difficulty diagnosing network problems:
Use the node or network address during configuration instead of the name of the server computer
This eliminates any internal lookup problems and make the connection slightly faster.
If you are using TCP/IP addresses, use the IP address rather than host name
For example, change the
(HOST=server_name) line in the tnsnames.ora file with the internet address, for example (HOST=198.32.3.5).
Perform a loopback test
Perform a loopback test on the server as described in "Testing Configuration on the Database Server". If the test passes, ftp the tnsnames.ora and sqlnet.ora files to the client.
Check what is between you and the server
If it is a wide area network (WAN), identify any intermediate systems that may not work correctly. If all computers are fine, the problem may be a timing issue.
Verify whether or not there is a timing issue
Timing issues are associated with an ORA-12535 error in the client log files.
To resolve this, try speeding up the connection by using exact addresses instead of names and increase the CONNECT_TIMEOUT_listener_name parameter in the listener.ora file. The default value for this parameter is 10 seconds.
Determine which Oracle applications are failing
SQL*Plus may work, but CASE tools may not. If you determine the problem is a data volume issue, try to transfer a large (5 MB) file with the base connectivity.
Here are some questions to ask yourself when diagnosing a problem:
Do all computers have a problem, or is it just one?
If one computer works and another does not, and you are confident that the same software (Oracle and third-party products) is installed, on each computer, swap out the network cables, if they are close enough, to see if the problem moves. If it does move, it indicates that the problem has something to do with the client/server connection and is not local to the PC.
What kind of links exist between the client and the server, for example, X.25, ISDN, Token Ring, or leased line?
Sniffers and LAN analyzers are useful for intermittent failing connections or detecting time outs and resent packets. You can also see what side of the conversation is waiting for a response.
Oracle Net Services provide detailed information about the source and context of problems as they arise. This information is generated and stored in log and trace files. The process of logging and tracing error information will help you to diagnose and resolve network problems.
All errors encountered in Oracle Net Services are appended to a log file for evaluation by a network or database administrator. The log file provides additional information for an administrator when the error message on the screen is inadequate to understand the failure. The log file, by way of the error stack, shows the state of the software at various layers.
To ensure that all errors are recorded, logging cannot be disabled on clients or Names Servers. Furthermore, only an administrator may replace or erase log files. The log file for the listener also includes Audit Trail information about every client connection request, as well as most listener control commands.
This section contains these topics:
Log files provide information contained in an error stack. An error stack refers to the information that is produced by each layer in an Oracle communications stack as the result of a network error.
The error stack components are described in Table 16-2.
Table 16-2 Error Stack Components
As an example, suppose that a user of a client application tries to establish a connection with a database server using Oracle Net and TCP/IP, and the user enters:
sqlplus scott/tiger@hrserver.com
The following error displays:
ORA-12543: TNS:Unable to connect to destination
This message indicates that the connection to the server failed because the database could not be contacted. Although the application displays only a one-line error message, an error stack that is much more informative is recorded in the log file by the network layer.
On the client side, the sqlnet.log file (Example 16-1) contains an error stack corresponding to the ORA-12543 error.
Example 16-1 sqlnet.log File
***********************************************************
Fatal OSN connect error 12543, connecting to:
(DESCRIPTION=(CONNECT_DATA=(SID=trace)(CID=(PROGRAM=)
(HOST=lala)(USER=sviavant)))(ADDRESS_LIST=(ADDRESS=
(PROTOCOL=ipc)(KEY=trace))(ADDRESS=(PROTOCOL=tcp)
(HOST=lala)(PORT=1521))))
VERSION INFORMATION:
TNS for SunOS:
Oracle Bequeath NT Protocol Adapter for SunOS:
Unix Domain Socket IPC NT Protocol Adaptor for SunOS:
TCP/IP NT Protocol Adapter for SunOS:
Tracing to file: /home/sviavant/trace_admin.trc
Tns error struct:
TNS-12543: TNS:unable to connect to destination
ns main err code: 12541
TNS-12541: TNS:no listener
ns secondary err code: 12560
nt main err code: 511
TNS-00511: No listener
nt secondary err code: 61
nt OS err code: 0
Each Oracle Net Services component produces its own log file. Table 16-3 provides the default log file names and lists the components that generate the log files.
Table 16-3 Log Files
| Log File | Component |
|---|---|
listener.log |
Listener |
sqlnet.log |
Client or Database Server |
instance-name_pid.log |
Oracle Connection Manager listener |
instance-name_cmgw_pid.log |
Oracle Connection Manager CMGW (Connection Manager gateway) process |
instance-name_cmadmin_pid.log |
Oracle Connection Manager CMADMIN (Connection Manager Administration) process |
| instance-name_alert.log | Oracle Connection Manager alert log |
Parameters that control logging, including the type and amount of information logged, as well as the location where the files are stored, are set in the configuration file of each network component as described in Table 16-4.
Table 16-4 Location of Log Parameters
| Network Component | Configuration File |
|---|---|
| Oracle Connection Manager Processes | cman.ora |
| Listener | listener.ora |
| Client | sqlnet.ora |
| Database Server | sqlnet.ora |
This section contains these topics:
Setting Logging Parameters in Configuration Files
|
See Also: Oracle Net Services Reference Guide for more information about these parameters |
Table 16-5 describes the log parameters settings that can be set in the sqlnet.ora file.
Table 16-5 sqlnet.ora Log Parameters
Table 16-6 describes the log parameters settings that can be set in the listener.ora file.
Table 16-6 listener.ora Log Parameters
Table 16-7 describes the log parameters settings that can be set in the cman.ora file.
Table 16-7 cman.ora Log Parameters
You configure logging parameters for the sqlnet.ora file with Oracle Net Manager and listener.ora file with either Oracle Enterprise Manager or Oracle Net Manager.
You must manually configure cman.ora file logging parameters.
|
See Also: Oracle Net Services Reference Guide |
To set logging parameters with Oracle Enterprise Manager and Oracle Net Manager:
| Log File | Tool | Set logging parameters here... |
|---|---|---|
sqlnet.log |
Oracle Net Manager |
See Also: "Oracle Net Manager"
|
listener.log |
Oracle Enterprise Manager |
See Also: "Oracle Enterprise Manager"
The Listeners page appears.
The Edit Listeners page appears.
|
listener.log |
Oracle Net Manager |
See Also: "Oracle Net Manager"
|
You can set logging during control utility runtime. Setting logging with a control utility does not set parameters in the *.ORA files; the setting is only valid for the session of the control utility:
For a listener, use the SET LOG_FILE and SET LOG_DIRECTORY commands from the Listener Control utility.
For an Oracle Connection Manager, use the SET LOG_DIRECTORY, SET LOG_LEVEL, and SET EVENT commands from the Oracle Connection Manager control utility.
|
See Also: Oracle Net Services Reference Guide |
To use a log file to diagnose a network error:
Review the log file for the most recent error number you received from the application. Note that this is almost always the last entry in the log file.
Starting from the bottom of the file, locate the first nonzero entry in the error report. This is usually the actual cause.
If that error does not provide the desired information, review the next error in the stack until you locate the correct error information.
If the cause of the error is still not clear, turn on tracing and repeat the statement that produced the error message.
This section describes what is recorded in the listener log file, including:
The listener log file contains audit trail information that enables you to gather and analyze network usage statistics, as well as information indicating the following:
A client connection request
A RELOAD, START, STOP, STATUS, or SERVICES command issued by the Listener Control utility
You can use Audit Trail information to view trends and user activity by first storing it in a table and then collating it into a report format. To import the data into a table, use an import utility such as SQL*Loader.
The audit trail formats text into the following fields:
Timestamp * Connect Data [* Protocol Info] * Event [* SID | Service] * Return Code
Properties of the audit trail are as follows:
Each field is delimited by an asterisk (*).
Protocol address information and service name or SID information appear only when a connection is attempted.
A successful connection or command returns a code of zero.
A failure produces a code that maps to an error message.
|
See Also:
|
The following output shows a log file excerpt with RELOAD command request.
14-JUL-2002 00:29:54 * (connect_data=(cid=(program=)(host=sales-server)(user=jdoe))(command=stop) (arguments=64)(service=listener)(version=135290880)) * stop * 0
The following output shows a log file excerpt with a successful connection request.
14-JUL-2002 15:28:58 * (connect_data=(service_name=sales.us.acme.com)(cid=(program=)(host=sales-server) (user=jdoe))) * (address=(protocol=tcp)(host=10.10.150.35)(port=41349)) * establish * sales.us.acme.com * 0
The following output shows a log file excerpt with a successful execution of the STATUS command by host sales-server, followed by an unsuccessful connection attempt by a client with an IP address of 10.10.150.35. This connection attempt resulted in an ORA-12525: TNS:listener has not received client's request in time allowed error message, which occurs when a client fails to complete its connect request in the time specified by the INBOUND_CONNECT_TIMEOUT_listener_name parameter in the listener.ora file. This client may be attempting a denial-of-service attack on the listener.
03-JUL-2002 16:41:57 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=sales-server)(USER=jdoe))(COMMAND=status) (ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=153092352)) * status * 0 03-JUL-2002 16:42:35 * <unknown connect data> * (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.150.35)(PORT=53208)) * establish * <unknown sid> * 12525 TNS-12525: TNS:listener has not received client's request in time allowed TNS-12604: TNS: Application timeout occurred
The listener records service registration events. During service registration, the PMON process provides the listener with information about the following:
Service names for each running instance of the database
Instance names of the database
Service handlers (dispatchers or dedicated servers) available
Dispatcher, instance, and node load information
Dynamic listening endpoints
The service registration-related events listed in Table 16-8 are recorded in the listener.log file:
Table 16-8 Service Registration Event Log Information
The service registration events are formatted into the following fields:
Timestamp * Event * Instance Name * Return Code
Properties of service registration fields are as follows:
Each field is delimited by an asterisk (*).
It is normal for the events to appear multiple times in a row for one instance.
A successful registration returns a code of zero, meaning the client can connect to the instance.
A failure produces a code that maps to an error message.
|
See Also:
|
The following example shows a log file with service registration events. Notice how the listener is able to receive a client request after a successful service_register event, but is unable to receive client requests after a service_died event.
------------------------------- 14-JUL-2002 15:28:43 * service_register * sales * 0 14-JUL-2002 15:28:43 * service_register * sales * 0 14-JUL-2002 15:28:58 * (connect_data=(service_name=sales.us.acme.com)(cid=(program=)(host=sales-server) (user=jdoe))) * (address=(protocol=tcp)(host=10.10.150.35)(port=41349)) * establish * sales.us.acme.com * 0 14-JUL-2002 15:38:44 * service_update * sales * 0 14-JUL-2002 15:38:44 * service_update * sales * 0 14-JUL-2002 15:48:45 * service_update * sales * 0 14-JUL-2002 15:48:45 * service_update * sales * 0 14-JUL-2002 15:50:57 * (connect_data=(service_name=sales.us.acme.com)(cid=(program=)(host=sales-server)(u ser=jdoe))) * (address=(protocol=tcp)(host=10.10.150.35)(port=41365)) * establish * sales.us.acme.com * 0 14-JUL-2002 15:51:26 * service_died * sales * 12537 14-JUL-2002 15:51:26 * service_died * sales * 12537 14-JUL-2002 15:52:06 * (connect_data=(service_name=sales.us.acme.com)(cid=(program=)(host=sales-server)(u ser=jdoe))) * (address=(protocol=tcp)(host=10.10.150.35)(port=41406)) * establish * sales.us.acme.com * 12514 TNS-12514: TNS:listener could not resolve SERVICE_NAME given in connect descriptor --------------------------------
The listener records direct hand-off events to dispatchers. These events are formatted into the following fields:
Timestamp * Presentation * Handoff * Error Code
Properties of direct hand-off fields are as follows:
Each field is delimited by an asterisk (*).
A successful connection or command returns a code of zero.
A failure produces a code that maps to an error message.
|
See Also: "Resolving the Most Common Error Messages for Oracle Net Services" for the most common Oracle Net errors or Oracle Database Error Messages for a complete listing of error messages |
Oracle Connection Manager generates four types of log files: one each for its listener, gateway, and CMADMIN processes and one for alerts. The last is a chronological record of all critical errors. In addition to logging critical errors, the alert log captures information about instance startup and shutdown. It also records the value of all configuration parameters at the beginning and end of a session. See Table 16-3 for file name syntax.
The CMADMIN and gateway log files are reproduced here. Table 16-9 explains some of the log entries. Each entry consists of a timestamp and an event. You can configure cman.ora to log events in the following categories:
Initialization and termination
Memory operations
Connection handling
Process management
Registration and load update
Events related to CMADMIN wakeup queue
Gateway timeouts
Command processing
Events associated with connection control blocks
Use the SET EVENT command to specify which events to log.
-------------------------------
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Parameter list)
(listener_address=(address=(protocol=tcp)(host=usunnae16)(port=1574)))
(aso_authentication_filter=OFF)
(connection_statistics=ON)
(log_directory=/home/user/network/admin/log)
(log_level=support)
(max_connections=256)
(idle_timeout=5)
(inbound_connect_timeout=0)
(session_timeout=20)
(outbound_connect_timeout=0)
(max_gateway_processes=1)
(min_gateway_processes=1)
(password=OFF)
(remote_admin=ON)
(trace_directory=/home/user/network/admin/log)
(trace_level=off)
(trace_timestamp=OFF)
(trace_filelen=0)
(trace_fileno=0)
)
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=Shared Memory Size)
(BYTES=82524))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=GMON Attributes validated)
(Type=Information))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:40)(EVENT=NS Listen Successful)
((ADDRESS=(PROTOCOL=tcp)(HOST=usunnae16)(PORT=55878))))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=version))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Received command)
(CMD=show status))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:44)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:12)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:15)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:29)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:46)(EVENT=Failed to get procedure id))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)(CMD=verify
password))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=probe monitor))
(LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:50)(EVENT=Received command)
(CMD=shutdown normal))
-------------------------------
------------------------------- (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=NS Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated) (BYTES=1024)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=NCR Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Connected to Monitor)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=State Change from Empty to Init)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated) (BYTES=251904)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Memory Allocated) (BYTES=2048)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=CCB Initialised)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=Started Listening)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:41)(EVENT=State Change from Init to Ready)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:46:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:06)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:07)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:12)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:13)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:17)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:22)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:25)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:27)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:30)(EVENT=Idle Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:32)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:37)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Ready)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:42)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:47)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:52)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:48:57)(EVENT=Housekeeping)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:02)(EVENT=Session Timeout)(CONN NO=0)) (LOG_RECORD=(TIMESTAMP=08-MAY-2003 08:49:02)(EVENT=Housekeeping)) -------------------------------
Table 16-9 CMADMIN and Gateway Log Entries: What They Mean
Tracing produces a detailed sequence of statements that describe network events as they are executed. Tracing an operation enables you to obtain more information on the internal operations of the components of Oracle Net Services than is provided in a log file. This information is output to files that can be evaluated to identify the events that led to an error.
|
CAUTION: Tracing uses a large amount of disk space and may have a significant impact upon system performance. Therefore, you should enable tracing only when necessary. |
This section contains topics:
Each Oracle Net Services component produces its own trace file. Table 16-10 provides the default trace file names and lists the components that generate the trace files.
Table 16-10 Trace Files
| Trace File | Component |
|---|---|
instance-name_pid.trc |
Oracle Connection Manager listener |
instance-name_cmgw_pid.trc |
Oracle Connection Manager CMGW (Connection Manager gateway) process |
instance-name_cmadmin_pid.trc |
Oracle Connection Manager CMADMIN (Connection Manager Administration) process |
listener.trc |
Listener |
sqlnet.trc |
Client |
svr_pid.trc |
Database Server |
tnsping.trc |
TNSPING Utility |
Parameters that control tracing, including the type and amount of information trace, as well as the location where the files are stored, are set in the configuration file of each network component as described in Table 16-11.
Table 16-11 Location of Trace Parameters
| Component | Configuration File |
|---|---|
| Oracle Connection Manager Processes | cman.ora |
| Listener | listener.ora |
| Client | sqlnet.ora |
| Database Server | sqlnet.ora |
| TNSPING Utility | sqlnet.ora |
This section contains these topics:
Setting Tracing Parameters in Configuration Files
|
See Also: Oracle Net Services Reference Guide for more information about these parameters |
Table 16-12 describes the trace parameters settings that can be set in the sqlnet.ora file.
Table 16-12 sqlnet.ora Trace Parameters
You can manually add the following TNSPING utility tracing parameters described in Table 16-13 to sqlnet.ora. The TNSPING utility determines whether or not a service (such as a databaseor other TNS services) on a Oracle Net network can be successfully reached.
Table 16-13 TNSPING Trace Parameters