日期:2014-05-16 浏览次数:20426 次
最近给人行做个项目,项目布置在Was6.1上,后台采用DB2。全项目的数据库关联查询都没问题,惟独一个模块出现了如下错误:
org.apache.openjpa.persistence.PersistenceException: ibmdb2jcc1012010898 Invalid operation: result set is closed.
经查阅文档,发现需要对WebSphere中数据源配置稍作修改即可:
1、“JDBC”-->“数据源”,单击项目使用的数据源。
2、页面会跳转到数据源“配置”,单击“定制属性”,找到"resultSetHoldablity",将其值改为"1"即可。
顺便解释一下:
resultSetHoldablity有两个值:1 (HOLD_CURSORS_OVER_COMMIT), 2 (CLOSE_CURSORS_AT_COMMIT)
分别代表数据库查询游标在何时关闭。"1"表示在整个事务提交过程中,游标都不会关闭;"2"表示事务提交前游标会关闭。
针对DB2,一般是设置为第一种,然而WebSphere旧的数据源配置默认将其设置为第二种,所以会报游标关闭的错误。