java - SQL异常 : Protocol Violation in oracle

标签 java oracle jdbc oracle11g ojdbc

我收到“违反协议(protocol)”的消息。 我有一个运行在 RedHat Linux 上的应用程序。数据库和应用程序共存于机器上。

使用的Oracle版本:Oracle 11g R2 (11.2.0.3.0)
使用的 JDBC 驱动程序:12.1.0.1
使用的Java:jdk1.7.0.65 32位

我遇到过许多论坛,其中指出此错误是驱动程序问题,但在所有这些论坛中,使用的 oracle 版本更高,驱动程序版本更旧,更改驱动程序解决了问题。但就我而言Oracle 版本较低,但驱动程序版本较高。那么,在这种情况下,驱动程序版本较高会不会有问题?

此外,当达到数据库上的最大连接数时,也会出现这种违反协议(protocol)的情况?

错误信息:

java.sql.SQLException: Protocol violation: [72] at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192) at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:884) at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1167) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1289) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3628) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1493)

最佳答案

增加堆空间!

我随机出现了这个确切的错误。

由于代码中的逻辑导致抛出不相关的异常,应用程序内存不足并且 OutOfMemory 错误丢失。

One of the reasons applications shouldn't handle throwables and errors.

关于java - SQL异常 : Protocol Violation in oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29372626/

相关文章:

postgresql - 如何使用 JDBC 从 postgres 读取 2300 万条记录?我必须从 postgres 中的一个表中读取并写入另一个表

java - 结果集未打开,在一种情况下有效,另一种情况下无效

java - Connection from DataSource getconnection() 和 Mysql session 有什么区别?

java - 更新 AttachmentPart 内容而不创建新消息

java - JPA/Hibernate无法理解持久顺序

Oracle:将行类型数据插入另一个表

sql - 从 ORACLE 数据库中选择记录

java - 使用编辑距离比较相似的字符串遇到了问题

java - maven 1 在运行测试时失败

c# - C# 中的 Oracle 参数化查询