标签:com test art mit and ofo 执行 not tar
XA 事务状态XA 事务进程包含以下状态:
使用 XA START 启动 XA 事务并将其置于 ACTIVE 状态。
对于 ACTIVE XA 事务,执行组成事务的 SQL 语句,然后执行 XA END 语句。XA END 将事务置于 IDLE 状态。
■ XA PREPARE 将事务置于 PREPARED 状态。在此节点的 XA RECOVER 语句在其输出中包含事务的 xid 值,因为 XA RECOVER 列出了处于 PREPARED 状态的所有 XA 事务。
■ XA COMMIT ... ONE PHASE 准备并提交事务。由于事务终止,XA RECOVER 不会列出 xid 值。
下面是一个简单的 XA 事务,它向表中插入一行,是全局事务的一部分:
1.mysql> XA START ‘xatest‘;
2.Query OK, 0 rows affected (0.00 sec)
3.
4. mysql> INSERT INTO mytable (i) VALUES(10);
5. Query OK, 1 row affected (0.04 sec)
6.
7. mysql> XA END ‘xatest‘;
8. Query OK, 0 rows affected (0.00 sec)
9.
10. mysql> XA PREPARE ‘xatest‘;
11. Query OK, 0 rows affected (0.00 sec)
12.
13. mysql> XA COMMIT ‘xatest‘;
14. Query OK, 0 rows affected (0.00 sec)
在给定客户端连接的上下文中,XA 事务和本地(非XA)事务是互斥的。例如,如果执行 XA START 开始 XA 事务,则在 XA 事务被提交或回滚之前,本地事务无法启动。相反,如果本地事务已经用 START TRANSACTION 语句启动,那么在事务被提交或回滚之前,不能使用 XA 语句。
如果 XA 事务处于 ACTIVE 状态,则不能执行任何导致隐式提交的语句。这将违反 XA 契约,因为无法回滚这个 XA 事务。尝试执行这样的语句会引发以下错误:
1.ERROR 1399 (XAE07): XAER_RMFAIL: The command cannot be executed
2.when global transaction is in the ACTIVE state
官方网址:
https://dev.mysql.com/doc/refman/8.0/en/xa-states.html
MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务状态
标签:com test art mit and ofo 执行 not tar
原文地址:https://blog.51cto.com/15023289/2559525