XA协议

简介

  • 数据库分布式事务实现
    • jtom,
    • atomikos
  • 实现参与主体
    • 用户API
    • 事务管理器
    • 资源管理器
  • XA协议
    • 事务管理器,操作资源管理器的API
  • 应用场景
    • 单体应用多数据库

XA协议时序图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
participant 开发人员API as CUS
participant 事务管理器 as TM
participant 资源管理器(数据库A) as DBA
participant 资源管理器(数据库B) as DBB

#TM->DBA: xa_open:创建连接
#TM->DBB: xa_open:创建连接
#Note left of CUS: 初始化完成
CUS->TM: 发起分布式事务:新的XID
CUS->TM: 操作数据库A
TM->DBA: 开启事务
DBA-->TM: 绑定事务A到XID
TM->DBA: 预提交
DBA-->TM: 成功
TM-->CUS: 成功

CUS->TM: 操作数据库B
TM->DBB: 开启事务
DBB-->TM: 绑定事务B到XID
TM->DBB: 预提交
DBB-->TM: 成功
TM-->CUS: 成功

CUS->TM: 提交
TM->DBA: 提交
DBA-->TM: 成功
TM->DBB: 提交
DBB-->TM: 成功
TM-->CUS: 成功
参考
  1. XA协议解释