简体   繁体   English

违反协议。 Oracle JDBC驱动程序问题

[英]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 ORACLE的版本:Oracle Database 11g企业版11.2.0.2.0版-64位生产

JAVA: 1.6.0_29-b11 JAVA: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

As it turned out the cause of problem was Oracle user's password. 事实证明,问题的原因是Oracle用户的密码。 It was close to expiration. 快要到期了。 After Oracle user's password reset error disappeared. Oracle用户的密码重置错误消失后。

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. 提交数据库需要一些内存,如果jvm达到最大内存,它将引发ProtocolViolationException。 It is useful to dump memory to investigate root cause. 转储内存以调查根本原因很有用。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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