【发布时间】:2014-10-31 10:31:05
【问题描述】:
Environment details:-
- Websphere MQ:- Redhat Linux 6.4 上的 7.5.0.2
- IBM DB2:- Redhat Linux 6.4 上的 10.1.0.2
- Java 1.7
- Java 的 Websphere MQ 类
- MQ 作为事务协调器
Scenario:-
以下所有步骤都在同一个线程上执行。 DB 连接已打开并保持打开,以便线程上完成的所有 UoW。
- qm.begin
- 获取消息并处理消息
- qm.commit
- qm.begin
- 获取消息并在消息处理期间引发异常
- qm.backout
- qm.begin(此操作失败并出现 MQJE001:完成代码 '2',原因 '2009'。)
队列管理器的错误日志显示
AMQ7605:XA 资源管理器“dbname”在调用 xa_start 时返回了意外的返回码 -6
有谁知道出了什么问题?
如果我们重复上述场景中的步骤并在每次提交或回滚后关闭数据库连接,一切正常。然而,这意味着我们必须打开和关闭每个事务的连接,这可能会影响性能。
这是否意味着事务回滚后,被撤销的uow中使用的连接不能被重用?还是我们遗漏了什么?
谢谢, 维巴夫
【问题讨论】:
-
有人可以帮忙吗?