oracle查询异常:No more data to read from socket

九尾狐的yi巴 2018-09-06 02:26:25
我们的生产项目,通过DBLINK查询另个系统的数据库,都是oracle11g,偶尔就会出现:java.sql.SQLRecoverableException: No more data to read from socket
测试环境怎么都不会出现这样的错误,上网搜索了很久大致的解释都是网络不好、连接会话被关闭。。。这些都是跟本身的数据库有关,而我这个只有在通过DBLINK查别的系统的数据库才会有问题,有没有大神遇到过这样的问题。
项目是微服务架构,使用druid连接池:durid-1.1.5


附部分异常信息:
java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:119)
at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:910)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:933)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)
at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3887)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1079)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3051)
at com.alibaba.druid.filter.FilterAdapter.preparedStatement_execute(FilterAdapter.java:1080)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3049)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3049)
at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)
at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3049)
at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:494)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:63)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)
at com.sun.proxy.$Proxy231.query(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
at sun.reflect.GeneratedMethodAccessor226.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434)
at com.sun.proxy.$Proxy111.selectOne(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:167)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:82)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy176.selectHisVinInfoFromPF(Unknown Source)
...全文
9995 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2018-10-17
  • 打赏
  • 举报
回复
引用 8 楼 jiuweihu521 的回复:
[quote=引用 6 楼 minsic78 的回复:] [quote=引用 4 楼 jiuweihu521 的回复:] [quote=引用 1 楼 baidu_36457652 的回复:] 重建dblink试试
没有多线程。[/quote] 那么程序报错时间点的alert日志看下,有没有什么异常[/quote] 原来alert日志确实报错了,很少的内容: Error 3135 trapped in 2PC on transaction 6.27.2459. Cleaning up. Error stack returned to user: ORA-03135: connection lost contact ORA-02063: preceding line from N1TOP7 搜了一下也没有解决问题[/quote] 感觉像是源端的问题,看看是不是引用的源端对象比较复杂,比如是个复杂的视图?
九尾狐的yi巴 2018-09-26
  • 打赏
  • 举报
回复
引用 7 楼 nayi_224 的回复:
如果跟网络或者数据库本身异常这种常见的问题无关的话,我之前写测试代码的时候也遇到过一次,原因比较特殊。 从数据库中取出7个G的blob数据。由于读取时间过长报的错。解决方法好像是把tomcat还是别的什么配置中的超时时间临时设成几亿秒。
以前我都以为是DBlink的问题,直到前几天,居然出现了一次不是DBlink也报这个错,一个简单的插入也出现No more data to read from socket。简直蒙了 数据库和应用不是同一台服务器,我觉得是网络有问题,但是没有证据能证明这个。数据量也不大,也没有blob字段。
九尾狐的yi巴 2018-09-26
  • 打赏
  • 举报
回复
引用 6 楼 minsic78 的回复:
[quote=引用 4 楼 jiuweihu521 的回复:] [quote=引用 1 楼 baidu_36457652 的回复:] 重建dblink试试
没有多线程。[/quote] 那么程序报错时间点的alert日志看下,有没有什么异常[/quote] 原来alert日志确实报错了,很少的内容: Error 3135 trapped in 2PC on transaction 6.27.2459. Cleaning up. Error stack returned to user: ORA-03135: connection lost contact ORA-02063: preceding line from N1TOP7 搜了一下也没有解决问题
nayi_224 2018-09-18
  • 打赏
  • 举报
回复
如果跟网络或者数据库本身异常这种常见的问题无关的话,我之前写测试代码的时候也遇到过一次,原因比较特殊。
从数据库中取出7个G的blob数据。由于读取时间过长报的错。解决方法好像是把tomcat还是别的什么配置中的超时时间临时设成几亿秒。
minsic78 2018-09-11
  • 打赏
  • 举报
回复
引用 4 楼 jiuweihu521 的回复:
[quote=引用 1 楼 baidu_36457652 的回复:]
重建dblink试试


没有多线程。[/quote]

那么程序报错时间点的alert日志看下,有没有什么异常
九尾狐的yi巴 2018-09-10
  • 打赏
  • 举报
回复
引用 3 楼 misatt77 的回复:
你是做电信行业的?

不是的哦。。学的是这个专业,放弃治疗了
九尾狐的yi巴 2018-09-10
  • 打赏
  • 举报
回复
引用 1 楼 baidu_36457652 的回复:
重建dblink试试


没有多线程。
misatt77 2018-09-07
  • 打赏
  • 举报
回复
你是做电信行业的?
minsic78 2018-09-07
  • 打赏
  • 举报
回复
如果多线程跑的话,试着把并发降低到<=4试试……
  • 打赏
  • 举报
回复
重建dblink试试

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧