Troubleshooting / Documentos / Soporte Técnico / Servicios / Tilsor
 
 

ORA-03113 USING SQL*NET V2


Creation Date: 11-APR-1995
Last Revision Date: 09-OCT-1996

Problem Description:
====================

You are using SQL*Net v2 on Windows and gettting an ORA-03113 error.

ORA-03113: End of file on communications channel

Key words: netwin3113

Solution: SOLVING AN ORA-03113 ERROR

Solution Description:
=====================

ORA-03113 Errors: SQL*Net V2


What does "End of file on communications channel" mean?
=======================================

This error basically means that something has prevented a
connection from either sending or receiving data. It is
similar to a phone call that gets interrupted for some
reason and neither party on the phone call can speak with
each other. When a SQL*Net connection is established,
either end of the connection should be able to send or
receive data at most any time. If a send or receive of data
fails, in many of those situations where SQL*Net has
determined the underlying connection itself has been
terminated, the Oracle error of ORA-03113 will be returned
to the application and user.


Where to look for the ORA-03113 failure?
========================================

Just like when a phone call is interrupted, there are
several possible places a SQL*Net failure could occur.

a) Client machine's SQL*Net
b) Client machine's networking protocol failure
c) Client machine's networking hardware failure
d) General network failure (segment, routers, etc)
e) Server machine's networking hardware failure
f) Server machine's networking protocol failure
g) Server machine's SQL*Net listener/background process.


Questions to ask when the ORA-03113 failure occurs?
===================================================

1) Does this same error occur from a different client machine?

If this error does occur from a different client
machine, then the source of the error is most likely
not the client machine itself.

2) Does a client machine on a different portion of the
network encounter the same error?

If the error is experienced on a different portion of
the network, the error is most likely not the client
machine or the networking hardware used to connect the
client machines with the server machine. Although, the
server's section of the network could be experiencing a
problem that could effect all client connections.

3) If a loopback connection is used on the server machine,
is the same error encountered?

A loopback connection is a connection that originates
from the server machine itself and then its target is
the server machine. The loopback connection should use
the same networking protocol that is experiencing the
problem on a remote client machine.

If the same error occurs by using the server itself to
perform a loopback connection, then the error is
centralized on the server machine and/or software itself.

4) Do other users experience this same error or other
errors when your client machine experiences the ORA-03113 error?

If other client machines experience an error at the
same time that your client machine does, then there
could be a common networking problem or the server
machine itself is experiencing a failure that is
causing all of the SQL*Net connections involved to have
problems at the same time.

5) Does the ORA-03113 error occur after being connected
with the server for a certain period of time or period
of inactivity?

This could point to several areas, but it does help to
know if a connection that is left idle encounters the
error or an active connection encounters the error.


Enabling SQL*Net V2 tracing to help locate the error.
===================================

In many cases, simply stating that an ORA-03113 error has
occurred does not provide enough information to locate the
exact cause of the problem. Enabling SQL*Net V2 tracing on
both the client and the server machine will assist Oracle
Support in diagnosing the problem. Your Oracle Support
representative may request you to enable the SQL*Net V2
tracing listed below to enable them to better assist you.
The next few sections will outline the SQL*Net V2 log and
tracing parameters that will produce additional information
when a SQL*Net V2 error occurs.

Client SQL*Net V2 Tracing:
--------------------------

The client machines SQL*Net V2 installation will have a
parameter file named SQLNET.ORA. The SQLNET.ORA file can be
modified to contain parameters that will instruct SQL*Net V2
to produce additional trace information that will assist
Oracle Support in diagnosing your ORA-03113 error.

The parameters to add / modify in the client machine's
SQLNET.ORA file are:

TRACE_LEVEL_CLIENT = 16

This parameter will instruct the SQL*Net V2
software to produce low level trace information.
After SQL*Net V2 tracing is no longer needed,
change this parameter's value to OFF'.

TRACE_DIRECTORY_CLIENT = valid_client_directory_name

This parameter should point to a directory that
exists on the client machine where the SQL*Net V2
client trace files will be placed.

TRACE_FILE_CLIENT = valid_client_filename

This filename will be used when creating the
client trace file. This file will be stored in
the directory specified by TRACE_DIRECTORY_CLIENT.
If the TRACE_UNIQUE_CLIENT parameter is set to ON,
be sure to keep the TRACE_FILE_CLIENT filename
short enough for the client operating system so
that SQL*Net V2 can append the process id to the
TRACE_FILE_CLIENT filename to make the file
unique.

Usually only the filename portion is supplied and
a default extension of .TRC is supplied by SQL*Net
V2.

TRACE_UNIQUE_CLIENT = ON

This will cause the SQL*Net V2 software to produce
a client trace file each time with a unique
filename to avoid each client trace file from
overwriting the previous trace file.

LOG_FILE_CLIENT = valid_client_filename

This will instruct the client machine's SQL*Net V2
software to produce a client SQL*Net V2 log file
with a filename as specified in this parameter.
By default this filename will be SQLNET.LOG

LOG_DIRECTORY_CLIENT = valid_client_directory_name

This will instruct the client machine's SQL*Net V2
software to produce the LOG_FILE_CLIENT file in
this specific directory on the client machine. If
this parameter is not specified, the
LOG_FILE_CLIENT file will be produced in the
current directory where the application program
that invokes SQL*Net V2 is running from.

Server SQL*Net V2 Tracing:
--------------------------

The server machine's SQL*Net V2 installation will have a
parameter file named SQLNET.ORA. The SQLNET.ORA file can be
modified to contain parameters that will instruct SQL*Net V2
to produce additional trace information that will assist
Oracle Support in diagnosing your ORA-03113 error.

The parameters to add/modify in the server machine's
SQLNET.ORA file are:

TRACE_LEVEL_SERVER = 16

This parameter will instruct the SQL*Net V2
software to produce low level trace information.
After SQL*Net V2 tracing is no longer needed,
change this parameter's value to OFF'.

TRACE_DIRECTORY_SERVER = valid_server_directory_name

This parameter should point to a directory that
exists on the server machine where the SQL*Net V2
server trace files will be placed.

LOG_FILE_SERVER = valid_server_filename

This will instruct the server machine's SQL*Net V2
software to produce a server SQL*Net V2 log file
with a filename as specified in this parameter.
By default this filename will be SQLNET.LOG

LOG_DIRECTORY_SERVER = valid_server_directory_name

This will instruct the server machine's SQL*Net V2
software to produce the LOG_FILE_SERVER file in
this specific directory on the server machine.

The server machines SQL*Net V2 listener can also be involved
in an ORA-03113 error if it occurs during the SQL*Net
connection phase. There are SQL*Net V2 parameters that can
be altered in the server machine's LISTENER.ORA file to
instruct the listener to produce additional information.

In the following parameters the reference to <ln> will be a
site and machine specific reference to the actually listener
named defined on that specific machine. Many sites will
simply call their SQL*Net V2 listener LISTENER' but this is
not required. Simply replace any reference in the following
parameters to <ln> with the correct one for your system.

TRACE_LEVEL_<ln> = 16

This will instruct the SQL*Net V2 TNSLSNR process
to produce additional trace information during a
SQL*Net V2 connection from a client machine.

TRACE_FILE_<ln> = valid_server_machine_filename

This is the filename of the trace file that will
be produced by this listener. The default is
LISTENER.TRC. The .TRC extension will be added to
the filename supplied automatically.

TRACE_DIRECTORY_<ln> = valid_server_directory_name

This should point to a directory that exists on
the server machine where the TNSLSNR process can
write its trace file.

LOG_FILE_<ln> = valid_server_filename

This will instruct the server machine's SQL*Net V2
TNSLSNR process to produce a server SQL*Net V2
listener log file with a filename as specified in
this parameter. By default this filename will be
LISTENER.LOG. The .LOG' portion of the filename
is not required in this parameter since this will
be appended automatically by SQL*Net on most
platforms.

LOG_DIRECTORY_<ln> = valid_server_directory_name

This will instruct the server machine's SQL*Net V2
TNSLSNR process to produce the LOG_FILE_<ln> file
in this specific directory on the server machine.