半小時前,一個項目反饋應用系統部分功能報錯,ORA-03113: 通信通道的文件結尾。好像是個常見的錯誤。(jdbc程序報出的錯誤是:無法從套接字讀取更多的數據)
異常信息:ORA-03113: 通信通道的文件結尾 進程 ID: 2392 會話 ID: 298 序列號: 46826
檢查了歸檔日志未發現異常,檢查Oracle日志時發現對應ORA-03137錯誤,經查閱網上資料,屬於Oracle的bug,God,竟然隱蔽在ORA-03113后面。
Errors in file d:\app\administrator\diag\rdbms\fssc\fssc\trace\fssc_ora_3972.trc (incident=137360): ORA-03137: TTC 協議內部錯誤: [12333] [36] [53] [56] [] [] [] [] Wed Dec 07 19:09:00 2016 Sweep [inc][137360]: completed Wed Dec 07 19:12:06 2016 Errors in file d:\app\administrator\diag\rdbms\fssc\fssc\trace\fssc_ora_3468.trc (incident=137596): ORA-03137: TTC 協議內部錯誤: [12333] [36] [48] [98] [] [] [] [] Wed Dec 07 19:12:07 2016 Sweep [inc][137596]: completed
解決方法:
1、升級Oracle到11.2.0.3/4
2、增加hint提示: /*+opt_param('_optim_peek_user_binds', 'false')*/
3、關閉隱藏參數:綁定變量的窺視
SQL> alter system set "_optim_peek_user_binds" = false;
設置隱藏參數后,問題消失。建議后期更新Oracle補丁。