4

在 WebSphere 中,如果您编写代码打开两个并发数据库连接,您会收到以下形式的错误:

J2CA0086W: 可共享连接 MCWrapper id 556e556e 受管连接 WSRdbManagedConnectionImpl@52365236 状态:来自资源 jdbc/abc 的STATE_TRAN_WRAPPER_INUSE 在本地事务包含边界内使用。

我们的框架允许我们这样做(嵌套事务可以在单独的连接或多个命名事务上)。我已经看到很多关于关闭 WebSphere 中的某些开关以打开连接共享的参考,但没有关于如何设置此标志的详细信息。有人可以指出实现这一目标的步骤吗?

具体来说,如果您看到这篇文章:http ://www-01.ibm.com/support/docview.wss?rs=180&context=SSEQTP&dc=DB520&dc=D600&dc=DB530&dc=D700&dc=DB500&dc=DB540&dc=DB510&dc=DB550&q1=j2ca0086w&uid= swg21121449&loc=en_US&cs=utf-8&lang=en

在“解决问题”下,我想知道如何将连接池设置为不可共享(假设确实解决了问题)。

4

2 回答 2

4

您使用的是哪个版本的 IBM WAS?如果您有 WAS 8,请转到 Resources-> JDC-> Datasources-> your datasources -> WebSphere Application Server properties -> Datasources no transactional。

对不起我的英语不好。

于 2012-12-06T13:16:26.063 回答
1

该消息dataSource.getConnection()在 servlet 中被调用两次时发生。数据源 jdbc/oracle 是从本地参考中查找的。调用一次并con.close()在执行第二次之前重用连接或调用getConnection()

于 2013-11-06T08:53:29.633 回答