XA transactions are based on the X/Open standard by the Open Group, and are probably what most of us in the Java world have been using for some time -- they form the foundation behind most two-phase commits in enterprise applications. However, web services has also brought its own approach to dealing with distributed transactions via the OASIS standard WS-TX. Frank Teti writes about using web services as distributed transactions and the role of XA and WS-TX plays in such designs.
While ESB and Web services can clearly be used to move data between disparate data sources, I would not recommend using a set of Web services to implement a distributed transaction if the transaction requirements could be achieved by using XA, even if the enabling Web services technology supported WS-Transaction (WS-TX). The one advantage Web services have over XA is that XA is not a remote protocol, though. In practice, WS-AT should be used in conjunction with XA to implement a true distributed transaction. WS-TX essentially extends transaction coordinators, such as OTS/JTS and Microsoft DTC to handle transactional Web services interoperability requirements.
To such a position, Mark Little who serves as Director of Standards in RedHat's JBoss division and has a PhD on replication and transactions, writes:
While the author is right that XA is more mature than WS-TX and that transactions are an important tool in an architect's tool-belt, saying that XA is a replacement for Web Services transactions is a bit like saying that because IIOP is more mature than SOAP we should all be using it. It's true, but it's never going to happen and overlooks what Web Services bring to distributed transactions: interoperability. I've written about that many times, so won't go over that again.
Read Frank Teti's complete technical tip: http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1268976,00.html Read Mark Little's entire response: http://markclittle.blogspot.com/2007/08/xa-versus-ws-tx.html