违反协议。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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 01:51:58  来源:igfitidea点击:

Protocol Violation. Oracle JDBC Driver issue

oraclejdbc

提问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。转储内存以调查根本原因很有用。