我正在尝试将Toplink与CMT消息驱动的bean集成。我的MDB是CMT。当我尝试使用unitofwork提交时,错误地说全局事务存在,因此无法执行本地提交。在研究了toplink后,他们提出了以下建议。使用外部连接池并使用getactiveUnit工作进行提交。我们使用oracle 10.1.3容器进行连接池和外部事务控制器(OC4J事务控制器)。当我改为getActiveUnitWork()。commit时,由于null活动工作单元,我得到空指针。我的理解是容器在MDB的消息执行时启动事务。因此,toplink getactive工作单元应将工作单元与外部事务相关联。 Toplink GetActive工作单元方法只有在没有外部事务时才返回null。我不知道如何解决这个问题或者出了什么问题。我很感激任何帮助。
感谢。 TZ
答案 0 :(得分:0)
确保您已正确设置会话上的ExternalTransactionController,并且JTA事务处于活动状态。