在WebSphere Application Server中使用Web服务原子事务和EJB进行透明事务配置

时间:2019-04-19 08:22:33

标签: websphere wsat

我正在尝试在WebSphere Application Server中实施Web服务原子事务(强制使用7.0版,但也尝试使用8.5版)。

基本上,我有两个JAX-WS服务(CallerServiceCalleeService)互相调用,并在XA数据源(Oracle)中写东西。 CallerService调用CallerBean EJB,EJB将在Oracle表中插入一行,然后调用CalleeService,后者对数据库进行相同的插入。

CallerBean@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW),而CalleeBean有@TransactionAttribute(TransactionAttributeType.MANDATORY)。第二个失败,错误为Global tx is required,因此事务无法正常工作。

我已将WSAT策略添加到WSDL中,并根据https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/cjta_wstran.html在WebSphere中配置了事务策略,并已启用在ibm-ejb-jar-ext.xml中发送WSAT上下文。

可以在https://github.com/ike3/lkp_transactions/tree/was7上找到该代码。我还有一个具有相同注释配置的分支,它完全可以在WildFly应用程序服务器上运行,而无需任何配置。

Websphere Application Server支持吗? 我可以在WebServices和EJB上使用透明事务配置吗?

0 个答案:

没有答案