系统使用的数据库从db2 8.2 升级到 db2 9.7,以前用 type 2 连接数据库,需要装db2 client,将远程数据库编目到本地,升级到db2 9.7后,客户建议用用 type4 ,纯java驱动,可移植性好,IBM工程师也建议用 type4 ,说目前用的很广泛。安装部署后,问题来了,发现 查询结果集 rs.next(),返回false,接着再次 rs.next()的话,就会抛错,
com.ibm.db2.jcc.am.SqlException: [jcc][t4][10120][10898][3.62.56] Invalid operation: result set is closed. ERRORCODE=-4470, SQLSTATE=null
at com.ibm.db2.jcc.am.fd.a(fd.java:660)
at com.ibm.db2.jcc.am.fd.a(fd.java:60)
at com.ibm.db2.jcc.am.fd.a(fd.java:103)
at com.ibm.db2.jcc.am.ym.Db(ym.java:4476)
at com.ibm.db2.jcc.am.ym.c(ym.java:329)
at com.ibm.db2.jcc.am.ym.next(ym.java:308)
at weblogic.jdbc.wrapper.ResultSet_com_ibm_db2_jcc_t4_j.next(Unknown Source)
. . . . . . . .
怀疑是新的db2驱动的问题,后来用旧的db2客户端的方式(type2)的方式连接db2 9.7,发现同样代码运行很畅快,无问题。真是郁闷了很久。。。。。