EJB

时间:2018-03-26 09:33:52

标签: java transactions ejb

我已经成功创建了Bean Managed Transaction示例,但它确实有效。 我设置了两个程序,A Java程序称之为B C ++程序,每个程序都有自己的事务。

我唯一要做的就是

  
      
  1. “@ TransactionManagement中(TransactionManagementType.BEAN)
  2.   
  3. UserTransaction tx = this.ejbContext.getUserTransaction()
  4.   
  5. tx.begin();
  6.   
  7. tx.commit();或者tx.rollback();
  8.   

但是,当我想将ContainerManagedTransaction与“TransactionManagementType.CONTAINER”一起使用并删除所有上述方法和类时......但它不起作用。 所以,我试过使用“TransactionAttributeType.MANDATORY”,它给出了一个错误..比如

  

EJB异常:“全局tx必需”   在com.ibm.ejs.csi.Mandatory.preInvoke(Mandatory.java:47)   ...

您能否给我一个示例或指导,以了解如何在ContainerManagedTransaction中配置XA事务?

谢谢..

1 个答案:

答案 0 :(得分:0)

您需要使用其他注释,REQUIRED或REQUIRES_NEW才能使其正常工作。

MANDATORY需要来自调用方法的一些事务上下文,因此不能用于开始新事务。