简体   繁体   中英

Protocol Violation. Oracle JDBC Driver issue

Could someone help with next exception:

[2013.08.14 09:01:56:173] ERROR: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO INDICATOR_VALUES(ID, VALUE, REF_CLIENT_ID, REF_MANAGING_INDICATOR_ID) VALUES(INDICATOR_VALUE_ID_SEQUENCE.NEXTVAL, ?, ?, ?)]; SQL state [99999]; error code [17401]; Protocol violation; nested exception is java.sql.BatchUpdateException: Protocol violation
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:603)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:615)
at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:884)
at com.cci.commons.dao.BaseDAO.batchUpdate(BaseDAO.java:186)

Version of ORACLE: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

JAVA: 1.6.0_29-b11

JDBC driver: ojdbc6.jar

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_24-rev-b08 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 11.2.0.2.0
Repository-Id: JAVAVM_11.2.0.2.0_LINUX_100812.1
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
sealed: true

Name: oracle/sql/converter/
Sealed: false

Name: oracle/sql/
Sealed: false

Name: oracle/sql/converter_xcharset/
Sealed: false

As it turned out the cause of problem was Oracle user's password. It was close to expiration. After Oracle user's password reset error disappeared.

Sometimes it can be related with outofmemory while you are committing to database. Commiting database needs some memory and if jvm reaches max memory it throws ProtocolViolationException. It is useful to dump memory to investigate root cause.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM