0

我正在尝试将 Toplink 与 CMT 消息驱动 bean 集成。我的 MDB 是 CMT。当我尝试使用 unitofwork 提交时,它会出错,说存在全局事务,因此无法进行本地提交。在研究了 toplink 之后,他们提出了以下建议。使用外部连接池并使用 getactiveUnit 的工作来提交。我们使用 oracle 10.1.3 容器进行连接池和外部事务控制器(OC4J 事务控制器)。当我更改为 getActiveUnitWork().commit 时,由于活动工作单元为空,我得到空指针。我的理解是容器在执行 MDB 消息时启动事务。因此toplink getactive 工作单元应该将一个工作单元与外部事务相关联。仅当不存在外部事务时,Toplink GetActive 工作单元方法才应返回 null。我不知道如何解决这个问题或出了什么问题。我很感激这方面的任何帮助。

谢谢。太极

4

1 回答 1

0

确保您在会话上正确设置了 ExternalTransactionController,并且有一个活动的 JTA 事务。

于 2012-10-31T14:18:33.160 回答