Oracle Networking Products Getting Started for Windows Platforms
Release 8.0.3






Prev Next


This appendix describes how to resolve problems that may arise when you use the Oracle Network Products. Specifically, this appendix covers the following topics:

Resolving Common Error Messages and Codes

The error messages most commonly experienced by Oracle networking product users are:

ORA-12154: TNS: Could not resolve service name

Cause: Net8 could not find the connect descriptor specified in the TNSNAMES.ORA file.

Action: After verifying that the database is turned on, check the following:

  1. If connecting from a login dialog box, do not begin the field for the connect string with an @ sign. Only use the @ sign if specifying the connect string in command line mode:
    SQLPLUS SCOTT/TIGER@service_name
  2. Make sure you have a TNSNAMES.ORA on the client.
  3. Make sure your TNSNAMES.ORA file is the same on both the server and the client.
  4. Check for multiple copies of the TNSNAMES.ORA file.

    By default, TNSNAMES.ORA is located in ORACLE_HOME\NET80\ADMIN.

  5. In the TNSNAMES.ORA file, verify:
    • the service name you are specifying in the connect string matches the one in the TNSNAMES.ORA file.
    • there are no syntax errors, especially stray characters and mismatched parentheses.
  6. Make sure that there are no duplicate copies of SQLNET.ORA.
  7. Turn on client tracing and re-execute the operation.

    The client trace file shows a secondary error code. To turn on client tracing, add to (or increase) the variable TRACE_LEVEL_CLIENT in the file ORACLE_HOME\NET80\ADMIN\SQLNET.ORA.

  8. If you are using domain names check your SQLNET.ORA file for the parameter NAMES.DEFAULT_ZONE.

    The domain name must be specified in the connect string if no parameter exists in the SQLNET.ORA file. In the case that you are not using domain names, then comment out this parameter in the SQLNET.ORA file:


    If you comment out this parameter, you must also comment out the NAMES.DEFAULT_DOMAIN parameter:


ORA-12203: TNS: unable to connect to destination and ORA-12154: TNS: could not resolve service name

Cause: Net8 could not find the connect descriptor specified in the TNSNAMES.ORA file.

Action: After verifying that the database is running, check the following:

  1. Verify the Net8 listener is running. Enter:
    LSNRCTL>START [listener_name]

    where listener_name is the name of the listener defined in the LISTENER.ORA file with the alias LISTENER. It is not necessary to identify the listener if you are using the default listener, named LISTENER.

    If the output indicates the listener is not running, try starting it with the command:

    LSNRCTL>START [listener_name]
  2. Ensure the TNSNAMES.ORA file is in the correct location.

    By default, TNSNAMES.ORA is located in ORACLE_HOME\NET80\ADMIN.

  3. Verify you are not using 16-bit Net8 SPX on Windows NT, as it is not supported by ensuring the NTS.DLL file does not exist.
  4. If connecting from a login box, make sure you are not placing an @ symbol in front of your connect service name. For example, if your valid service name is ORCL, it Net8 looks for @ORCL in your TNSNAMES.ORA.

ORA-3113: end of file communication channel

Cause: An unexpected end-of-file was processed on the communication channel. The TCP/IP retransmission count on Win NT/95 has a default value of 5. This means that the send side retransmits the packet five times or until it gets an acknowledgment. The timeout for each retransmission is two times the timeout for the previous retransmission (exponential backoff). With the default value of 5, the send side retransmits 5 times (approximately. 15 seconds) and if it does not get an acknowledgment. it assumes that the other side is down and closes the connection. If the link goes down for a minute or two the Net8 client receives this error.

Action: Modify the retransmission count.
Please see your Microsoft specific operating system manual for more information on tuning the microsoft TCP/IP software

ORA-3121: No interface driver connection - function not performed

Cause: This is caused from using a SQL*Net version 1 prefix in the connect string.

Action: Do not use the following prefixes in the prefix@service_name connect string.

    These are version 1 prefixes and the @ symbol is used only on command line.

Diagnosing Net8

If you have just completed installing and configuring your Net8 product and an attempt to make a basic peer-to-peer (single protocol/single community network) connection returns an Oracle ORA ERROR, this section may help you diagnose the cause of the problem. Any underlying fault, noticeable or not, is reported by Net8 with an error number or message that is not always indicative of the actual problem.

This section helps you determine which parts of Net8 do function properly rather than the parts that do not work. This section helps you determine if the problem is:

A problem can be identified if you slowly test each network layers.

For more information on specific error messages or technical bulletins on errors received when performing these diagnostics test, please check the following resources available to you:

Understanding Proper Net8 Installation

Net8 is Oracle Corporation's remote data access software. It enables both client-server and server-server communication (with applications residing on different machines communicating as peer applications) across any network.

The architecture of TNS is comprised of two software components that need to be installed on both the server and all the client machines:

To verify proper installation:

Follow the instructions in Chapter 6, "Connecting to a Database".

Server Diagnostics

You may need assistance from the database administrator with the information contained in this section.  

Answer the questions below. If you answer Yes to any of the questions, skip this server diagnostics, and go to the section "Client Diagnostics". At this point, you know the Net8 server side listener is functioning properly, because you were able to answer Yes to any of the following statements in this appendix. If you are not sure or answered No to any of the above questions, continue with the server diagnostics.

Diagnosing Net8 on the server involves:

  1. Verifying the Database Is Running
  2. Performing a Loopback Test

Verifying the Database Is Running

To check that the database is up:

  1. Log into the database using SQL*Plus or Server Manager, and connect with a valid username/password. For example:

    A message appears, confirming that you are connected with the database. If you receive the following errors, ask your Database Administrator to assist you:

    • ORA-1017: invalid U/P
    • ORA-1034: Oracle not available

Performing a Loopback Test

In order to perform a loopback test:

To perform a loopback test:

  1. Check that the LISTENER.ORA, TNSNAMES.ORA, and SQLNET.ORA files exist in the ORACLE_HOME\NET80\ADMIN folder.
  2. Follow the instructions in Chapter 6, "Connecting to a Database" to start the listener and to perform a loopback test.

    If the loopback test continues to fail, continue to Step 3.

    If the loopback test passes, skip to Step 4.

  3. Check the Problem/Solution Database Web Site at for more specific information on the error received, or contact Oracle Worldwide Support.
  4. Continue to the next section, "At this point, you know the Net8 server side listener is functioning properly, because you were able to answer Yes to any of the following statements:", in this appendix.

At this point, you know the Net8 server side listener is functioning properly, because you were able to answer Yes to any of the following statements:

Client Diagnostics

You have verified that there are no problems on the server side. Now check the client side.

To perform diagnostics on the client:

  1. Check that you have installed the appropriate Oracle Protocol Adapter.
  2. Check base connectivity for underlying network transport. You may need the assistance of the Network Administrator.

    Net8 technology depends upon the underlying network for a successful connection.

    Protocol   Verify...  


    that you can use file transfer or terminal emulation utilities (FTP, TELNET, and PING) from the workstation to the server where the Oracle listener and database reside.  


    that you can perform a Netware login to the machine that the database is running on. Ensure you can map drives or use other Novell services such as Print Servers and File Servers on the Network. Check that the Oracle listener service is broadcasting by doing a DISPLAY SERVERS from the Novell Server or any Novell File Server on the SPX/IPX network.  

    Named Pipes  

    that you can see other computers or servers on the MSFT network. Ensure you are able to share drives within the MSFT network.  

    For more information on any of the above commands, please refer to your vendor networking software documentation.

  3. Ensure all Net8 software has been installed by following the instructions in "Understanding Proper Net8 Installation" in this chapter to ensure both the Net8 Client and the appropriate Oracle Protocol Adapter are installed.
  4. Ensure the client machine has the TNSNAMES.ORA and the SQLNET.ORA files in the ORACLE_HOME\NET80\ADMIN directory.

    The search order for SQLNET.ORA and TNSNAMES.ORA is as follows:

    • directory where the application executable resides, ORACLE_HOME\BIN

    If you have any other working client machines connecting to your selected Oracle8 Server using Net8, back up your existing files and copy both the working TNSNAMES.ORA and SQLNET.ORA from the working machine onto the non-working client workstations. This eliminates the possibility of errors in the files.

  5. Test the Oracle Net8 layer with SQL*Plus or Server Manager, as described in Chapter 6, "Connecting to a Database".

    It is advised not to use TNSPNG80. TNSPNG80 works just like the TCP/IP PING utility. A socket is never created and open. The TNSPNG80 never connects with the Server listener. It just ensures TNS listener is present at the server side.

  6. If the connection still fails, consider using tracing as described in next or check the Problem/Solution Database Web Site at for a specific diagnostics bulletin on the error received or contact Oracle Worldwide Support.

Net8 Logging and Tracing

Both SQLNET.ORA and LISTENER.ORA log and trace files are available for you to use in troubleshooting your network problems.

Log files are by default located in ORACLE_HOME\NET80\ADMIN \LOG and trace files are by default located in ORACLE_HOME\NET80\ADMIN \TRACE.


All errors encountered in Oracle network products are logged 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.


Tracing can be used to examine and diagnose application connections across the network. The trace facility allows a network or database administrator to obtain more information on the internal operations of the components of an Oracle application network than is provided in a log file. Tracing an operation produces a detailed sequence of statements that describes the events as they are executed. All trace output is directed to trace output files that can be evaluated to identify the event that led to an error.

The Difference Between Logging and Tracing

Logging reveals the state of the Oracle components at the time of an error; that is, when are error occurs, it is logged to the log file. However, tracing describes ALL software events as they occur; that is, even when an error is not occurring, information is posted into the trace file to show what is happening in the software. Thus, tracing provides additional information about events whether or not there is an error.

For more specific details about Oracle Net8 logging and tracing, please refer to the following documentation

To turn on tracing:

Edit the SQLNET.ORA and LISTENER.ORA files and set the following:

TRACE_DIRECTORY_CLIENT= <Directory where trace is written> 
LOG_DIRECTORY_CLIENT = <Directory where log file is written> 

The default name for the trace file are SQLNET.TRC and LISTENER.TRC and the default name for the log file are SQLNET.LOG and LISTENER.LOG.

Net8 Troubleshooting Hints and Tips from the Field

Below are some Net8 tips you may find helpful when you are having difficulty diagnosing the problem:

Questions to Ask When Troubleshooting

Below are some questions to ask yourself when diagnosing a problem:

Calling Oracle Customer Support

If after reading this chapter, you still cannot resolve your problems or you are recommended to call Oracle Customer Support to report the error, please have the following information at hand:


Copyright © 1997 Oracle Corporation.

All Rights Reserved.