XA in a Nutshell
Mike Spille recently posted a three-part series covering XA and the joys of 2 Phase Commit. He provides a thorough description of the topic, with some great examples and good coverage to areas such as failure scenarios and recovery techniques. The final post provides a great insight into various logging techniques that could be adopted by the Transaction Manager developer, as well as other implementation concerns. Well worth a read. Even if you're not building transaction-oriented systems, or are depending on the transaction services of your Application Server, these posts will give you a good appreciation of what is going on behind the scenes.
XA Exposed Part I
XA Exposed Part II
XA Exposed Part III: The Implementor's Notebook