Dump continued from file: e:\app\administrator\diag\rdbms\db\db\trace\db_ora_47708.trc
ORA-03137: TTC 协议内部错误: [12333] [254] [64] [0] [] [] [] []
========= Dump for incident 16305 (ORA 3137 [12333]) ========
*** 2018-08-29 14:04:34.946
dbkedDefDump(): Starting incident default dumps (flags=0x2, level=3, mask=0x0)
----- Current SQL Statement for this session (sql_id=gy425phpm9wq8) -----
SELECT AUDIT_PROJECT.RowGuid from AUDIT_PROJECT,AUDIT_TASK where AUDIT_PROJECT.TASKGUID=AUDIT_TASK.RowGuid and ITEM_ID in (select AUDIT_TASK.ITEM_ID from AUDIT_WINDOW_TASK,AUDIT_WINDOW_USER,AUDIT_TASK where AUDIT_WINDOW_TASK.WINDOWGUID=AUDIT_WINDOW_USER.WINDOWGUID and AUDIT_WINDOW_TASK.TASKGUID=AUDIT_TASK.RowGuid and USERGUID=:UserGuid ) and STATUS=:status
可以看到引起报错的为一条SQL,正好涉及到故障页面查询。
三、查阅资料
根据报错代码,查阅MOS文档
Troubleshooting ORA-3137 [12333]
Errors Encountered When Using Oracle JDBC Driver (文档 ID 1361107.1)
此报错信息来源于11.2.0.1其中一个bug
Unpublished Bug 9703463 - ORA-3137 [12333] or ORA-600 [kpobav-1] When Using Bind Peeking
This bug affects versions 11.1.0.6, 11.1.0.7, and 11.2.0.1 of the RDBMS. It is fixed in version 11.2.0.2 of the database.
It can also occur intermittently; similarly to unpublished Bug:8625762, this is a bind peeking bug.
四、解决方案
1、禁用Bind Peeking
SQL> alter system set "_optim_peek_user_binds"=false;
此参数为oracle的隐含参数
2、升级数据库版本
此bug已在11.2.0.3以上版本修复,可升级此版本或更高
SQL> col ksppinm for a20
SQL> col ksppinm for a30
SQL> col ksppstvl for a30
SQL> col ksppdesc for a30
SQL> SELECT ksppinm, ksppstvl, ksppdesc
FROM x$ksppi x, x$ksppcv y
WHERE x.indx = y.indx AND ksppinm = '_optim_peek_user_binds';
KSPPINM KSPPSTVL KSPPDESC
------------------------------ ------------------------------ ------------------------------
_optim_peek_user_binds TRUE enable peeking of user binds
查看隐含参数,此参数为开启状态