XA 协议
XA 协议是一个基于数据库层面的分布式事务协议,其分为两部分:事务管理器(Transaction Manager)和本地资源管理器(Resource Manager)。事务管理器作为一个全局的调度者,负责对各个本地资源管理器统一号令提交或者回滚。主流的诸如 Oracle、MySQL 等数据库均已实现了 XA 接口。
XA 接口是双向的系统接口,在事务管理器以及一个或多个资源管理器之间形成通信桥梁。也就是说,在基于 XA 的一个事务中,我们可以针对多个资源进行事务管理,例如一个系统访问多个数据库,或即访问数据库、又访问像消息中间件这样的资源。这样我们就能够实现在多个数据库和消息中间件直接实现全部提交、或全部取消的事务。
XA 规范不是 java 的规范,而是一种通用的规范;Java 中的规范是 JTA 和 JTS:
Java 事务 API(Java Transaction API,JTA)是一个 Java 企业版的应用程序接口,在 Java 环境中,允许完成跨越多个 XA 资源的分布式事务。
Java 事务服务(Java Transaction Service,JTS)是 J2EE 平台提供的分布式事务服务的具体实现规范,J2EE 服务器提供商根据 JTS 规范实现事务并提供 JTA 接口。
Last updated