2012년 2월 29일 수요일

[Technote] Receiving protocol violation errors when connecting to Oracle database

Receiving protocol violation errors when connecting to Oracle database


Problem(Abstract)

When a supported Oracle database returns a protocol violation, the connection is not able to recover. An error similar to the following is logged in the stdout file of the Java™ application. This is the stdout.log for the IBM® WebSphere® Application Server application server process and the tracefile for the administrative server process:

[7/12/04 8:11:30:119 BRT] 4dc28b StaleConnecti A CONM7007I: Mapping
the following SQLException, with ErrorCode 17,401 and SQLState <null>,
to a StaleConnectionException: java.sql.SQLException: Protocol violation


Note: ErrorCode 17,401 corresponds to the message ORA-17401.

Cause

The allocated Oracle JDBC connection on the client side (Application Server) is not able to communicate with the resource on the Oracle DB server, so it does not respond to any Java database connectivity (JDBC) calls. This means that statement and connection objects are never closed and the memory is never released. The only way for an Oracle resource manager to release the resource is to orphan it. When the protocol violation message (ORA-17401) occurs frequently, it results in a memory leak on both the Application Server jvm and the Oracle database server.

You might see the number of Oracle database connection objects growing from an Application Server Java process, or the database errors might indicate that there are too many open cursors.

Resolving the problem

There are two known instances where IBM code caused the problem or did not handle the protocol violation message properly.


If you have eliminated these two possible causes for the error, contact Oracle to resolve the Protocol Violation.

댓글 없음:

댓글 쓰기