WebSphere本地事务包含边界问题J2CA0086W

时间:2010-09-17 20:53:13

标签: jdbc websphere jta

在WebSphere中,如果代码打开两个并发数据库连接,则会出现以下形式的错误:

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

我们的框架允许我们这样做(嵌套事务可以在单独的连接或多个命名事务上)。我已经看到很多引用关闭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

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

2 个答案:

答案 0 :(得分:3)

您使用的是哪种版本的IBM WAS?如果您有WAS 8,请转到 资源 - > JDC-> Datasources->您的数据源 - > WebSphere Application Server属性 - >数据源没有交易。

抱歉我的英文。

答案 1 :(得分:1)

在两次调用dataSource.getConnection()时发生消息 一个servlet。数据源jdbc / oracle是从本地引用查找的。 在执行第二次con.close()

之前,请将其调用一次并重复使用该连接或致电getConnection()