两阶段提交与三阶段提交
XA规范
X/Open 组织(即现在的 Open Group )定义了分布式事务处理模型。 X/Open DTP 模型( 1994 )包括应用程序( AP )、事务管理器( TM )、资源管理器( RM )、通信资源管理器( CRM )四部分。一般,常见的事务管理器( TM )是交易中间件,常见的资源管理器( RM )是数据库,常见的通信资源管理器( CRM )是消息中间件。
一、两阶段提交(2PC/two-phaseCommit)
思路可以总结为:参与者(RM)将操作的成败通知协调者(TM) ,再由协调者根据所有参与者的返回的状态决定,各个参与者是提交操作还是中止操作。
1、第一阶段(准备阶段/投票阶段)
事务协调者给每个参与者发送prepare消息,每个参与者要么直接返回失败,要么执行本地事务,写本地的redo和undo日志,但是不提交(不 commit)。这个阶段已经开启了锁资源。
2、第二阶段(提交阶段/执行阶段)
如果协调者收到了参与者的失败或者超时的消息,直接给每个参与者发送回滚消息,否则&