Most developers have at least heard of XA, which describes the standard
protocol that allows coordination, commitment, and recovery between
transaction managers and resource managers.
Products such as CICS, Tuxedo, and even BEA WebLogic Server act as
transaction managers, coordinating transactions across different resource
managers. Typical XA resources are databases, messaging queuing products such
as JMS or WebSphere MQ, mainframe applications, ERP packages, or anything
else that can be coordinated with the transaction manager. XA is used to
coordinate what is commonly called a two-phase commit (2PC) transaction. The
classic example of a 2PC transaction is when two different databases need to
be updated atomically. Most people think of something like a bank that has
... (more)