ORA-03137: TTC protocol internal error : [12333] [7] [120] [116] [] [] [] []

数据库版本:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0  Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

alert.log中报错

Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_29643.trc  (incident=51507):
ORA-03137: TTC 协议内部错误: [12333] [7] [120] [116] [] [] [] []

Metalink文档 ID 1361107.1中说明,

Bug 9445675 NO MORE DATA TO READ FROM SOCKET WHEN USING END-TO-END METRICS

This bug does affect the JDBC driver. This bug may be the cause when all of the following conditions are met:

You are using the 10.1.x.x or the 11.2.0.1 JDBC driver; the bug does not affect 10.2.x.x, or 11.1.x.x versions of the driver, nor versions 11.2.0.2 or above
You are using end-to-end metrics in your Java code
The server side ORA-3137 [12333] error is accompanied by the client side Java exception "No more data to read from socket"

This bug is fixed in the 11.2.0.2 version of the JDBC driver and above. It is discussed in the following notes:

Note 9445675.8 Bug 9445675 - “No more data” / ORA-3137 using end to end metrics with JDBC Thin

Note 1081275.1 “java.sql.SQLRecoverableException: No more data to read from socket” is Thrown When End-to-end Metrics is Used

Troubleshooting Approaches

  1. Disable Bind Peeking

A common thread through the database bugs listed above is that the problem does not occur if bind peeking is shut off. Temporarily disabling bind peeking allows you to confirm whether this is the case in your environment as well.

This can be done dynamically:
SQL> alter system set “_optim_peek_user_binds”=false;

If the ORA-3137 [12333] error no longer reproduces after disabling bind peeking, then in most cases, the problem is due to one of the database bugs listed above, or due to some variant of one of those bugs.
Note: disabling bind peeking can have an impact on the database. Specifically, it can alter the explain plan for some queries that use bind variables. This should be taken into account, particularly before considering the use of this option as a long-term workaround.

  1. Apply Relevant Database Patches

Whenever possible, the recommended solution when running a database version 11.1.0.7 is to apply the most recent PSU patch.
PSU 11.1.0.7.8 Patch 12419384 includes Patch:9703463.

For 11.1.0.7, Patch 9243912 can be applied on top of 11.1.0.7.8 ( no conflict).

Patch:9703463 can also be applied individually but requires PSU 11.1.0.7.6

Patch:8625762 may also be applicable to databases version 11.1.0.7

If you have disabled bind peeking as a test, and the error no longer reproduces, then applying one of these patches would be the next step.

Alternatively, if you are unable to disable bind peeking for some reason, you may consider applying one of these patches as a diagnostic test in itself, to confirm whether the patch fixes the problem for you.

  1. Upgrade the Database to Version 11.2.0.3

All of the above bugs are fixed in version 11.2.0.3 of the database.

  1. Contact Oracle Support if the problem still persists

For JDBC connections that have resulted in the ORA-3137 error, the above database-centric approaches have resolved the issue almost all of the time. If disabling bind peeking has no effect and the ORA-3137 [12333] still occurs, please contact Oracle Support, as this is a relatively rare scenario in which further investigation is needed.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值