SQL Statements

  • xa begin xid
  • insert / update / delete …
  • xa end xid
  • xa prepare xid
  • xa commit xid
  • xa rollback xid
  • xa recover 查看当前的 xa 事务

Entities

  • Transaction Manager (TM)
  • Resource Manager (RM)

2PC

  • xa prepare xid
  • xa commit/rollback xid

Example

  1. mysql> XA START 'xatest';
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> INSERT INTO mytable (i) VALUES(10);
  4. Query OK, 1 row affected (0.04 sec)
  5. mysql> XA END 'xatest';
  6. Query OK, 0 rows affected (0.00 sec)
  7. mysql> XA PREPARE 'xatest';
  8. Query OK, 0 rows affected (0.00 sec)
  9. mysql> XA COMMIT 'xatest';
  10. Query OK, 0 rows affected (0.00 sec)

XA 框架

  • narayana
  • bitronix
  • atomikos
  • Apache ShadingSphere
  • java.sql.XADataSource

参考文献

https://dev.mysql.com/doc/refman/5.7/en/xa.html