(mysql.info) xa-states
Info Catalog
(mysql.info) xa-statements
(mysql.info) xa
13.4.7.2 XA Transaction States
..............................
An XA transaction progresses through the following states:
1. Use `XA START' to start an XA transaction and put it in the
`ACTIVE' state.
2. For an `ACTIVE' XA transaction, issue the SQL statements that make
up the transaction, and then issue an `XA END' statement. `XA END'
puts the transaction in the `IDLE' state.
3. For an `IDLE' XA transaction, you can issue either an `XA PREPARE'
statement or an `XA COMMIT ... ONE PHASE' statement:
* `XA PREPARE' puts the transaction in the `PREPARED' state. An
`XA RECOVER' statement at this point will include the
transaction's XID value in its output, because `XA RECOVER'
lists all XA transactions that are in the `PREPARED' state.
* `XA COMMIT ... ONE PHASE' prepares and commits the
transaction. The XID value will not be listed by `XA RECOVER'
because the transaction terminates.
4. For a `PREPARED' XA transaction, you can issue an `XA COMMIT'
statement to commit and terminate the transaction, or `XA
ROLLBACK' to roll back and terminate the transaction.
Here is a simple XA transaction that inserts a row into a table as part
of a global transaction:
mysql> XA START 'xatest';
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO mytable (i) VALUES(10);
Query OK, 1 row affected (0.04 sec)
mysql> XA END 'xatest';
Query OK, 0 rows affected (0.00 sec)
mysql> XA PREPARE 'xatest';
Query OK, 0 rows affected (0.00 sec)
mysql> XA COMMIT 'xatest';
Query OK, 0 rows affected (0.00 sec)
Within the context of a given client connection, XA transactions and
local (non-XA) transactions are mutually exclusive. For example, if `XA
START' has been issued to begin an XA transaction, a local transaction
cannot be started until the XA transaction has been committed or rolled
back. Conversely, if a local transaction has been started with `START
TRANSACTION', no XA statements can be used until the transaction has
been committed or rolled back.
Info Catalog
(mysql.info) xa-statements
(mysql.info) xa
automatically generated byinfo2html