问题:
之前系统运行正常,突然某一天某一个功能异常,其他功能正常,查看日志是执行一条oracle sql时报错
SQL state [null]; error code [17410]; 无法从套接字读取更多的数据;
nested exception is java.sql.SQLException: 无法从套接字读取更多的数据
调查:
查看oracle数据库日志,看是否报错
执行命令查看oracle日志存放路径
select name ,value from v$diag_info
执行结果
alert路径就是报警日志路径,找到该目录下的log.xml文件,发现里面的Errors信息:
详细报错信息在c:\app\diag\rdbms\orcl\orcl\trace\orcl_ora_15728.trc里
主要报错类型是 ORA-03137: TTC 协议内部错误: [12333] [5] [97] [100] [] [] [] []
解决:
百度查询 ORA-03137: TTC 协议内部错误: [12333] [5] [97] [100] [] [] [] []报错原因
参考:ORA-03137: TTC 协议内部错误: [12333] [4] [49] [51] [] [] [] []
ORA-03137: TTC 协议内部错误
最终解决办法:
执行下面命令
alter system set "_optim_peek_user_binds"=false;
我是项目在本地环境出现了这个问题,就这样解决了,如果是生产,还需谨慎调查这条命令执行后带来的后果。
调查思路是参照如下博客,它查出来的报错原因和我不一样,是ORA-07445
java.sql.SQLException: 无法从套接字读取更多的数据