0

我有一个使用 weblogic server 10.3 和 ejb 3.0 以及 Toplink for ORM 的应用程序。目前,事务使用 UnitOfWork.commit() 来提交 EJB 远程组件接口中规定的特定操作,例如 createXX()、deleteXX() 等。

现在,当我尝试评论 uow.commit(); 在我的代码中,并以声明方式更改 ejb-jar.xml 以使相关的特定 EJB 模块具有 Container 并且我已将 @TransactionAttribute(value=REQUIRES_NEW) 用于我的 createXX() 方法,理想情况下,容器应自动提交作为CMT。但它没有提交。没有错误,仅供参考,我在 weblogic 服务器控制台中的复选框仍未选中“支持全局事务”。

请帮助我,因为提示说记录已成功创建(根据我的业务消息),但是在检查日志时,在 uow.uow.registerNewObject(EntityObject); 之后没有发生实际提交。被执行。

4

1 回答 1

0

确保您已将 TopLink 与 WebLogic JTA 集成,(已将服务器平台设置为 weblogic,已设置 weblogic jta 数据源)。

您还应该使用 Session.getActiveUnitOfWork() 或 acquireUnitOfWork(),并且不应调用 uow.commit()。

于 2011-06-23T13:08:27.457 回答