From Oracle FAQ
Jump to: navigation, search

ORA-03113: end-of-file on communication channel


[edit] What causes this error?

An ORA-03113 error is an unexpected end-of-file that occurred which could not be handled by SQL*Net.

All connections between a client software and an Oracle Server are created and managed by Oracle Networking or Net8. This is a two way connection between a Net8 Server (Listener) and a Net8 client. After a connection is established between the two, this error may occur when the net8 server is no longer available, or can not respond to Net8 client requests due to problems with the Oracle Server.It can also be due to a network failure. If it occurs at startup a configuration or installation problem is a likely cause. If it occurs after a shutdown some defunct processes may be running.

[edit] How to fix it

The cause can be:

[edit] Oracle Server Errors

If the failure occurs after a connection is established, a likely cause is a database server error. For example in my personal experiences all versions of Oracle server before 8.1.6 are pretty unstable under Windows NT 4.0 with Service Pack 6.0 and frequent internal errors cause the server to discontinue its operation. In such cases one should see the alert log and will usually have to refer to Oracle Support. In the case mentioned above you should downgrade to Service Pack 5.

[edit] Net8 Server (Listener) Errors

This is when the listener fails to respond to Net8 client. The causes for such a failure are numerous. Lack of memory on the server machine where the listener resides, or problems with the host operating system can cause the listener to fail. To make sure that the listener is working correctly one may use the Listener Control Utility (LSNRCTL). One may also restart listener using the host operating system facilities LSNRCTL or to recover from temporary errors.

[edit] The Network Connection Failure

This is when the network connection through the network protocol is no longer available. For example when using the TCP, a TCP/IP route must be available between the client machine and the server. This may be tested using the ping utility. There are also situations when a specified protocol is disabled for a machine, say when conflicting IP addresses occur or a router device or software fails. In such cases it may be possible to reach the listener through other protocols like Named Pipes. In such cases you should call for the network administrator to fix the problem or you can change the protocol in use. To change the protocol, change the protocol entry and the parameters for the connection string in use, in TNSNAMES.ORA or for the method in use (Oracle Names or external naming services.) Say in the TNSNAMES.ORA one may start using conn_nmp (Named Pipes) after conn_tcp fails. However bear in mind that in this case the listener must support NMP too for a connection to be established. To have listener support a new protocol one may use Net8 Assistant, LSNRCTL or edit listener.ora manually and restart the listener using the host operating system facilities.