Transactions 2阶段提交-提交步骤失败
在2阶段提交中,在参与事务的所有组件投票通过“是”后,事务协调器发出“提交”命令。然后每个参与者提交自己的事务 如果任何参与者在“提交”步骤中失败,会发生什么?当此组件失败时,其他组件可能已经提交了其事务。 如果发生这种情况,事务协调器是否能够向所有参与者发出回滚命令Transactions 2阶段提交-提交步骤失败,transactions,distributed-transactions,Transactions,Distributed Transactions,在2阶段提交中,在参与事务的所有组件投票通过“是”后,事务协调器发出“提交”命令。然后每个参与者提交自己的事务 如果任何参与者在“提交”步骤中失败,会发生什么?当此组件失败时,其他组件可能已经提交了其事务。 如果发生这种情况,事务协调器是否能够向所有参与者发出回滚命令 谢谢。第一阶段的全部目的是确保在提交阶段没有失败。至少从数据完整性或业务流程的角度来看。因此,如果提交的准备阶段正常,则可以假设提交将正常工作,但网络/通信故障除外 所有参与系统必须就处理这种情况的一种或另一种方式达成一致 1.自
谢谢。第一阶段的全部目的是确保在提交阶段没有失败。至少从数据完整性或业务流程的角度来看。因此,如果提交的准备阶段正常,则可以假设提交将正常工作,但网络/通信故障除外 所有参与系统必须就处理这种情况的一种或另一种方式达成一致 1.自动提交。如果协调器未显式调用回滚(在给定时间内),则事务将被视为由相应的参与系统提交 2.事务协调器为每个失败的组件重试。如果网络出现故障,重试可能仍然有效 3.补偿。在指定的重试次数之后,事务协调器假定事务已在不一致的状态中结束。然后,它可以尝试进行补偿。(注意:这不一定是回滚,这类似于事务失败时要采取的操作) 现在想想这个。薪酬本身可能不会在所有资源管理器中都成功 某些业务流程也可能需要手动补偿!因此,您需要记录、发出警报,并且可能需要手动补偿,以使系统恢复到原始状态