1. 第一阶段(投票阶段):
(1)协调者节点向所有参与者节点询问是否可以执行提交操作(vote),并开始等待各参与者节点的响应;
(2)参与者节点执行询问发起为止的所有事务操作,并将Undo信息和Redo信息写入日志。
(3)各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功,则它返回一个”同意”消息;如果参与者节点的事务操作实际执行失败,则它返回一个”中止”消息。
2. 第二阶段(提交执行阶段):
当协调者节点从所有参与者节点获得的相应消息都为”同意”时:
(1)协调者节点向所有参与者节点发出”正式提交(commit)”的请求;
(2)参与者节点正式完成操作,并释放在整个事务期间内占用的资源;
(3)参与者节点向协调者节点发送”完成”消息;
(4)协调者节点受到所有参与者节点反馈的”完成”消息后,完成事务。