最近在部署Spring MVC 类型的应用程序到WebSphere7服务器+DB2 V9 的过程中,遇到了XA数据源报错如下:
com.ibm.db2.jcc.am.SqlException: [jcc][t4][10120][10898][3.57.82] 操作无效:已关闭 result set。 ERRORCODE=-4470, SQLSTATE=null
at com.ibm.db2.jcc.am.bd.a(bd.java:660)
at com.ibm.db2.jcc.am.bd.a(bd.java:60)
at com.ibm.db2.jcc.am.bd.a(bd.java:103)
at com.ibm.db2.jcc.am.zl.Db(zl.java:4219)
at com.ibm.db2.jcc.am.zl.c(zl.java:314)
at com.ibm.db2.jcc.am.zl.next(zl.java:293)
at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java:3120)
经过查看代码,发现代码中没有出现resultset关闭后再引用的现象,同样的代码,部署在tomcat+DB2环境就是好的,代码应该是没有问题的。
于是开始了在度娘上进行搜索,发现竟然几乎搜不到相关案例可以参考,只是有一篇文章提示将 数据源 中的定制属性 resultSetHoldability 的值改为2。可是我看了我配置的 resultSetHoldability 属性值的确为2,但是一点用都没有。