SQLException:oracle中的协议冲突 [英] SQLException: Protocol Violation in oracle

查看:158
本文介绍了SQLException:oracle中的协议冲突的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到了违反协议。
我有一个在RedHat Linux上运行的应用程序。数据库和应用程序共同驻留在机器上。

I am getting the "Protocol Violation". I have an application running on RedHat Linux.The database and the application are co-resident on the machine.

使用的Oracle版本:Oracle 11g R2(11.2) .0.3.0)

使用的JDBC驱动程序:12.1.0.1

使用的Java:jdk1.7.0.65 32位

Oracle version used: Oracle 11g R2 (11.2.0.3.0)
JDBC Driver used: 12.1.0.1
Java used: jdk1.7.0.65 32-bit

我遇到过很多论坛,其中这个错误被指出是一个驱动程序问题但是在所有那些论坛中使用的oracle版本更高且驱动程序版本更旧并且更改驱动程序解决了问题。但在我的情况下Oracle版本较低但驱动程序版本较高。因此,在这种情况下,驱动程序的较高版本可能会出现问题吗?

I have come across many forums where this error has been pointed out to be a driver issue but in all those forums the oracle version used was higher and the driver version were older and changing the driver resolved the issue.But in my case the Oracle version is lower but driver version is higher.So , in this case will the higher version of the the driver could be a problem?

此外,此协议违规也可以当达到DB上的最大连接数时出现?

Also, this protocol violation can also arise when the maximum number of connections on the DB is reached ?

错误消息:


java.sql.SQLException:违反协议:[72]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:464)
at o racle.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)

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)


推荐答案

这样的错误指示检查JDBC瘦驱动程序中的一个错误,该驱动程序无法理解服务器在线路(套接字)上返回的内容。

Such an error indicates a bug in the JDBC thin driver which is not able to understand what the server is returning on the wire (socket).

您可以随时尝试使用最新的JDBC瘦驱动程序希望该bug能够得到解决。截至今天,最新的是12.1.0.2。

You can always try to use the very latest JDBC thin driver hoping that the bug will be resolved. As of today the latest is 12.1.0.2.

如果这没有帮助,那么您将需要联系Oracle支持。您将被要求提供的第一件事是提供发生此错误的连接的sqlnet跟踪。这将有助于Oracle工程师了解发生故障时网络上发生的情况。

If that doesn't help then you will need to reach out to Oracle support. The first thing you will be asked is to provide the sqlnet trace of the connection where this error happened. This will help the Oracle engineers understand what was happening on the network when the failure happened.

要打开sqlnet跟踪,请编辑服务器上的sqlnet.ora文件并添加

To turn on sqlnet tracing, edit your sqlnet.ora file on the server and add

TRACE_LEVEL_SERVER = 16

TRACE_LEVEL_SERVER = 16

这将为跟踪控制器中的每个连接添加一个跟踪文件(在服务器上) )。不要在生产系统上这样做,因为它会大大减慢系统速度并产生大量痕迹。

which will add a trace file for each connection in your trace director (on the server). Don't do this on a production system because it will slow down the system dramatically and will generate huge amount of traces.

祝你好运。

这篇关于SQLException:oracle中的协议冲突的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆