1.5. 管理修改多个资源的事务
对于涉及 单个资源 的事务,通常可以使用内置在资源中的事务管理器。对于 涉及多个 资源的事务,需要使用外部事务管理器或事务处理(TP)监控。在这种情况下,资源必须通过注册 XA 交换机来与事务管理器集成。
协议之间有一个重要的区别,用于提交在单个资源系统上运行的事务,以及用于提交在多个资源系统上操作的事务的协议:
- 1-phase commit-is 用于单资源系统。此协议在单个步骤中提交事务。
- 2-phase commit-is 用于多个资源系统。此协议在两个步骤中提交一个事务。
在一个事务中包含多个资源会带来系统故障的风险,在某些资源上提交事务,而不是所有资源。这会使系统处于不一致的状态。2 阶段提交协议旨在消除这一风险。它确保系统重启后 始终 可以恢复到一致的状态。