日期:2014-05-16  浏览次数:20409 次

关于DB2在WebSphere下关联查询报错的问题

最近给人行做个项目,项目布置在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旧的数据源配置默认将其设置为第二种,所以会报游标关闭的错误。