spring 访问db2 数据库时,一开始没问题,最近会经常出现这个错误 ERRORCODE=-4499, SQLSTATE=08001

Caused by: com.ibm.db2.jcc.b.gm: [jcc][t4][2030][11211][3.50.152] 在对连接的底层 socket、socket input stream 或 socket output stream 执行操作期间
发生通信错误。错误位置:Reply.fill()。消息:数据不足。 ERRORCODE=-4499, SQLSTATE=08001
at com.ibm.db2.jcc.b.wc.a(wc.java:283)
at com.ibm.db2.jcc.t4.a.a(a.java:352)
at com.ibm.db2.jcc.t4.ab.b(ab.java:219)
at com.ibm.db2.jcc.t4.ab.c(ab.java:237)
at com.ibm.db2.jcc.t4.ab.c(ab.java:348)
at com.ibm.db2.jcc.t4.ab.v(ab.java:1133)
at com.ibm.db2.jcc.t4.bb.a(bb.java:41)
at com.ibm.db2.jcc.t4.b.i(b.java:1357)
at com.ibm.db2.jcc.t4.b.b(b.java:1249)
at com.ibm.db2.jcc.t4.b.s(b.java:1020)
at com.ibm.db2.jcc.t4.b.c(b.java:632)
at com.ibm.db2.jcc.t4.b.b(b.java:618)
at com.ibm.db2.jcc.t4.b.a(b.java:360)
at com.ibm.db2.jcc.t4.b.(b.java:298)
at com.ibm.db2.jcc.DB2Driver.connect(DB2Driver.java:193)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:190)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:173)
at org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriver(DriverManagerDataSource.java:164)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnectionFromDriver(AbstractDriverBasedDataSource.java:149)
at org.springframework.jdbc.datasource.AbstractDriverBasedDataSource.getConnection(AbstractDriverBasedDataSource.java:119)
at org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:148)
at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:110)
at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:87)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connectInternal(JDBCStoreManager.java:979)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:964)
... 61 more

参与5

2同行回答

zlm1990zlm1990软件开发工程师join
求帮助!!!!!,具体相互关系如下:db2数据库在ip是16的服务器上,有个项目A在ip是18的服务器上,有个项目B在ip是20的服务器上,A项目连接的db2数据库,一直可以,B项目在18号之前也是可以,运行了有半年了。都没有问题。昨天发现查询特别慢,发现后台报这个错,A项目和B项目都是通过spring,jpa连接d...显示全部

求帮助!!!!!,具体相互关系如下:db2数据库在ip是16的服务器上,有个项目A在ip是18的服务器上,有个项目B在ip是20的服务器上,A项目连接的db2数据库,一直可以,B项目在18号之前也是可以,运行了有半年了。都没有问题。昨天发现查询特别慢,发现后台报这个错,A项目和B项目都是通过spring,jpa连接db2,不过B项目spring配置的是双数据源,连接的是mysql和db2数据库。B项目可以查询出数据,但是反映特别慢,况且有时会报这个错。在ip是20的服务骑上通过telnet 测试 ip16,也是通的。且这三台服务器都是内网。

收起
软件开发 · 2017-06-20
浏览3034
liujiacailiujiacai其它广州大厦
转载:db2 ERRORCODE=-4499, SQLSTATE=08001解决办法1、 db2 ERRORCODE=-4499, SQLSTATE=08001,解决办法a、 需要使用db2set DB2COMM=TCPIP,才可以使用jdbc type v4来连接b、 若此时仍旧报错,检查”db2 get dbm cfg |findstr SVCENAME”,查看TCP/IP服务名称和/etc/services中...显示全部

转载:db2 ERRORCODE=-4499, SQLSTATE=08001解决办法

1、 db2 ERRORCODE=-4499, SQLSTATE=08001,解决办法

a、 需要使用db2set DB2COMM=TCPIP,才可以使用jdbc type v4来连接

b、 若此时仍旧报错,检查”db2 get dbm cfg |findstr SVCENAME”,查看TCP/IP服务名称和/etc/services中定义的db2服务名称是否匹配,windows下是 “WINDOWSsystemtem32driveretcservices”,若不匹配,
第一步运行:
db2 “update dbm cfg using SVCENAME serviceName”,
第二步运行:
db2 terminate,
然后重启db2服务即可。


注:grep是Linux系统上的查找字符号的一个方法。在windows系统上要用findstr来代替

    首先查看通讯协议,查看DB2COMM变量。

如果上面DB2COMM不是TCPIP,则需要用下面语句修改

其次,查看数据库管理器的配置,查看SVCENAME

注意:如果是linux系统,则上述语句变为:db2 get dbm cfg |grep SVCENAME

   如果SVCENAME与C:\\Windows\\System32\\drivers\\etc\\services文件中的不一样,则需要修改

  最后重启DB2

收起
IT其它 · 2017-06-20
浏览3141
  • 谢谢您,这个解决方法,我在网上看了,但是还是不行
    2017-06-20

提问者

zlm1990
软件开发工程师join

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2017-06-20
  • 关注会员:2 人
  • 问题浏览:4460
  • 最近回答:2017-06-20
  • X社区推广