2
votes

I'm trying to implement distributed transactions over two SOAP web-services with WSO2 ESB v 4.5.1.

I implemented two separate web-services (each of them has connection to its own databases) and a proxy-service that communicates with both services. Proxy-service contains Transaction mediator.

As far as I understood this version of ESB uses Atomikos (www.atomikos.com) and Transaction mediator is the only way to manage transactions.

How to configure WSO2 ESB and Atomikos to use distributed transactions? I found the only example of distributed transactions implementation. It shows simple case when system transactions are created by the ESB itself. In my case transactions should be "passed" (propagated) to the external web-service.

Is there any example of distributed transactions over SOAP?

Any help would be appreciated.

3

3 Answers

0
votes

This (transactions over different services) is possible with the commercial edition of Atomikos - named ExtremeTransactions.

I don't believe that one is included in WSO2. You could ask WSO2 whether they can do that or not...

HTH

0
votes

This is not supported. What you can do is to use a fault sequence and add rollback logic inside that fault sequence. For example, you invoke the first service and then the second service invocation fails. Then you should end up in a fault sequence and within that sequence you should write logic to rollback the invocation of service1.

0
votes

I would like more information on the reason why "it is not supported".

AFAIK WSO2 uses Axis2 as the web service stack, and Axis2 does support WS-Atomic Transactions: http://wiki.apache.org/ws/StackComparison

Is it so that Axis2 supports WS-Atomic Transactions but WSO2 is missing something required to utilize it?