DB2报错:在对连接的底层socket执行操作期间发生通信错误

问题描述,可能有以下几种报错信息,具体报错信息没有保存,搜了一些相关的报错信息:


1,,异常信息: [jcc][t4][2030][11211][3.59.81] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间发生通信错误。错误位置:Reply.fill() 
2,ERROR - [jcc][t4][2030][11211][3.50.152] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill()。消息:Software caused connection abort: recv failed。 ERRORCODE=-4499, SQLSTATE=08001
ERROR - could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
ERROR - [jcc][t4][10335][10366][3.50.152] 操作无效:连接已关闭。 ERRORCODE=-4470, SQLSTATE=08003
ERROR - [jcc][t4][10335][10366][3.50.152] 操作无效:连接已关闭。 ERRORCODE=-4470, SQLSTATE=08003
ERROR - could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
ERROR - Class ADSyncServiceImpl Method saveList : a different object with the same identifier value was already associated with the session: [com.zony.dms.entity.ADOU#0]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.zony.dms.entity.ADOU#0]
ERROR - [jcc][10120][10943][3.50.152] 操作无效:已关闭 statement。 ERRORCODE=-4470, SQLSTATE=null
3,[jcc][t4][2030][11211][3.63.123] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间 
发生通信错误。错误位置:Reply.fill() - socketInputStream.read (-1)。消息:Read timed out。 ERRORCODE=-4499, SQLSTATE=08001

4,com.ibm.db2.jcc.c.DisconnectException: [ibm][db2][jcc][t4][2030][11211] 检测到了通信错误

5,Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred while applying a parameter map.  
--- Check the AnnouncementInfo.updateByPrimaryKey-InlineParameterMap.  
--- Check the statement (update failed).  
--- Cause: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2030][11211][3.59.81] 在对连接的底层 socket


、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill() - socketInputStream.read (-1)。消息:Read timed out。 ERRORCODE=-4499, SQLSTATE=08001
at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:505)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:90)
at org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:413)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
... 87 more
Caused by: com.ibm.db2.jcc.am.DisconnectNonTransientConnectionException: [jcc][t4][2030][11211][3.59.81] 在对连接的底层 socket


、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill() - socketInputStream.read (-1)。消息:Read timed out。 ERRORCODE=-4499, SQLSTATE=08001


今天测试一个功能的添加公告和修改公告的功能,遇到了这个很让人无语的报错。我们公司使用的是IBM的DB2数据库,测试数据库在linux服务器上,我们平时都是使用这个UAT的测试环境,DB2数据库就部署在远程的一个linux服务器上。项目底层用的是mybatis。问题描述有以下几个要点:

1,DB2数据库不在本地;
2,报错信息诡异,很难定位,我半天也没有找到代码的问题,最后把SQL直接在数据库中执行,发现问题是相同的,并且报错信息也相同;
3,报错信息时有时无,也就是说有时候有问题,有时候又没问题了。
4,我用的这台电脑平时就经常断网,网络不流畅并且机器运行速度慢,总是卡;
5,提交以后,程序一般都要等到10+秒以后报错,网页报错内容“系统错误,请联系管理员(或者检查数据的格式和长度是否正确)”


经过半天的测试,最后判断是数据库通信的问题,之后将程序部署到UAT环境以后,这个问题得到了解决。因为在UAT环境,IBM的应用程序服务器WebSphere 和 DB2 在同一个网络环境下。


总结一下,给大家参考,少走弯路。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值