两阶段提交如何在原子事务中工作?

时间:2015-01-19 11:23:30

标签: web-services security soap soap-client

我在两阶段提交协议中有一些查询,

1.第二阶段提交失败会怎么做?

2.如何保持容错?

提前致谢。

1 个答案:

答案 0 :(得分:1)

来自Two-phase commit protocol的答案。

  

第二阶段提交失败会怎样做?

提交阶段失败的处理如下:

  

如果任何群组在提交请求阶段(或协调员的超时到期)中投票否:

     
      
  1. 协调员向所有群组发送回滚消息。
  2.   
  3. 每个群组使用撤消日志撤消事务,并释放   交易期间持有的资源和锁。
  4.   
  5. 每个队列   向协调员发送确认。
  6.   
  7. 协调员撤消       收到所有确认后的交易。
  8.   

  

如何保持容错?

在许多情况下,它没有,可能需要人为干预:

  

它对所有可能的故障配置都没有弹性,并且在极少数情况下需要用户(例如,系统管理员)干预来纠正结果。为了适应从故障中恢复(在大多数情况下是自动的),协议的参与者使用协议状态的记录。协议的恢复过程使用日志记录,这些日志记录通常生成缓慢但存在故障。存在许多协议变体,其主要区别在于记录策略和恢复机制。尽管通常意图不经常使用,但恢复程序构成了协议的很大一部分,因为协议会考虑并支持许多可能的故障情况。