Tomcat Application JDBC Connections Fail Intermittently with java.sql.SQLException: Protocol violation Intermittently

(Doc ID 1367031.1)

Last updated on MARCH 08, 2017

Applies to:

JDBC - Version 11.1.0.7 and later
Information in this document applies to any platform.

Symptoms

Application using JDBC 11.1.0.7 against an 11.1.0.7 RAC fails intermittently with the following errors:


java.sql.SQLException: Protocol violation
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:119)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:134)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:247)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:327)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:352)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:642)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1114)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:215)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:1038)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:1145)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1471)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3888)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3958)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:3614)

java.sql.SQLException: OALL8 is in an inconsistent state
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:119)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:134)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:247)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:327)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:352)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:642)
at oracle.jdbc.driver.T4C8Oall.marshal(T4C8Oall.java:494)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:201)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:1038)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:1145)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1471)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3888)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3958)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:3614)

In an effort to solve the issue, the JDBC drivers were upgraded to JDBC 11.2.0.2, but even though the java.sql.SQLException: OALL8 is in an inconsistent state no longer exists with this version,  the protocol violation errors still persist.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms