Search code examples
javajta

What is a global transaction?


JSR 907 JTA 1.2 defines the "global transaction" term:

The UserTransaction.begin method starts a global transaction and associates the transaction with the calling thread.

What does that mean? Is it the outermost transaction or what?


Solution

  • Basically the difference between a local transaction and a global transaction is resource bound. A global transaction will span multiple resources. A local transaction is limited to one resource/datasource.

    E.g.

    In a global transaction you will write to the DB and send a message over a queue.

    This is nicely explained here: http://integrationspot.blogspot.co.uk/2011/03/jta-transactions-local-and-global.html

    Global Transactions (XA)

    When a managed data source is configured for global transactions, it returns connections that can participate in global transactions. A global transaction (also called a distributed transaction) enlists more than one resource in the transaction.

    Global Transactions provide the ability to work with multiple transactional resources (typically relational databases and message queues).