违反协议。Oracle JDBC 驱动程序问题
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/18227868/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Protocol Violation. Oracle JDBC Driver issue
提问by atovstonog
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
ORACLE 版本:Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
JAVA: 1.6.0_29-b11
爪哇:1.6.0_29-b11
JDBC driver: ojdbc6.jar
JDBC驱动: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
回答by atovstonog
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.
事实证明,问题的原因是 Oracle 用户的密码。已经快到期了。Oracle 用户的密码重置错误消失后。
回答by Pamir Erdem
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.
有时,当您提交到数据库时,它可能与内存不足有关。提交数据库需要一些内存,如果 jvm 达到最大内存,它会抛出 ProtocolViolationException。转储内存以调查根本原因很有用。