EJB中XA ContainerManagedTransaction的配置方式

The way of configuration for XA ContainerManagedTransaction in EJB

我已经成功地创建了一个 Bean Managed Transaction 示例并且它有效。 我设置了两个程序,A Java程序调用B C++程序,每个程序都有自己的事务。

我唯一要做的就是

  1. "@TransactionManagement(TransactionManagementType.BEAN)
  2. UserTransaction tx = this.ejbContext.getUserTransaction()
  3. tx.begin();
  4. tx.commit(); OR tx.rollback();

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

EJB Exception : "global tx required" at com.ibm.ejs.csi.Mandatory.preInvoke(Mandatory.java:47) ...

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

谢谢..

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

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