EJB中XA ContainerManagedTransaction的配置方式
The way of configuration for XA ContainerManagedTransaction in EJB
我已经成功地创建了一个 Bean Managed Transaction 示例并且它有效。
我设置了两个程序,A Java程序调用B C++程序,每个程序都有自己的事务。
我唯一要做的就是
- "@TransactionManagement(TransactionManagementType.BEAN)
- UserTransaction tx = this.ejbContext.getUserTransaction()
- tx.begin();
- 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 需要一些来自调用方法的事务上下文,因此不能用于开始新事务。
我已经成功地创建了一个 Bean Managed Transaction 示例并且它有效。 我设置了两个程序,A Java程序调用B C++程序,每个程序都有自己的事务。
我唯一要做的就是
- "@TransactionManagement(TransactionManagementType.BEAN)
- UserTransaction tx = this.ejbContext.getUserTransaction()
- tx.begin();
- 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 需要一些来自调用方法的事务上下文,因此不能用于开始新事务。