【发布时间】:2015-06-05 00:40:00
【问题描述】:
我收到“违反协议”。 我有一个在 RedHat Linux 上运行的应用程序。数据库和应用程序共同驻留在机器上。
使用的 Oracle 版本:Oracle 11g R2 (11.2.0.3.0)
使用的 JDBC 驱动程序:12.1.0.1
使用的 Java:jdk1.7.0.65 32 位
我遇到过许多论坛,其中指出此错误是驱动程序问题,但在所有这些论坛中,使用的 oracle 版本更高,驱动程序版本更旧,更改驱动程序解决了问题。但在我的情况下Oracle版本较低,但驱动版本较高。那么,在这种情况下,驱动的更高版本会不会有问题?
此外,当达到 DB 上的最大连接数时,也会出现这种协议违规?
错误信息:
java.sql.SQLException:协议违规:[72] 在 oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464) 在 oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) 在 oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) 在 oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) 在 oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884) 在 oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167) 在 oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289) 在 oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584) 在 oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628) 在 oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)
【问题讨论】:
-
是不是因为你的用户密码过期了?
-
@kucing_terbang 不,用户的密码没有过期。
-
我们需要查看完整的错误消息,而不仅仅是两个词的摘要。
标签: java oracle jdbc oracle11g ojdbc