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

时间:2011-06-16 06:39:08

标签: ejb-3.0 toplink

我有一个应用程序,它使用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.But它没有提交。没有错误,只是对于信息,我在weblogic服务器控制台中的复选框仍未选中“支持全局交易”。

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

1 个答案:

答案 0 :(得分:0)

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

你也应该使用Session.getActiveUnitOfWork()或acquireUnitOfWork(),不应该调用uow.commit()。