ejb 3.0-将应用程序从BMT转换为CMT时出现的问题



我有一个应用程序,它使用weblogic服务器10.3和ejb 3.0,还有用于ORM的Toplink。目前,事务使用UnitOfWork.commit()来提交EJB远程组件接口中声明的特定操作,如createXX()、deleteXX()等。

现在,当我试图评论uow.commit();在我的代码中,并解密地更改ejb-jar.xml,以便有问题的特定ejb模块具有Container,并且我在createXX()方法中使用了@TransactionAttribute(value=REQUIRES_NEW),理想情况下,容器应该作为CMT的一部分自动提交。但它不是提交。没有错误,仅供参考,我在weblogic服务器控制台中的复选框中未选中"支持全局事务"。

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

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

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

相关内容

  • 没有找到相关文章

最新更新