一、引子
既然出现了分布式场景(DTP模型), 大java也及时制定出一套规范来给各大应用服务器、数据库/mq等厂商使用,以方便管理互通---》JTA闪亮登场。JTA(Java Transaction API),即Java事务API规范。JTA规范指定了事务管理器(TM)与分布式事务系统中涉及的各方(应用程序AP、资源管理器RM、应用服务器AS)之间的高级接口。JTA规范包含第一节讲的XA规范,包含的那部分就是XA规范的java版本的实现。
二、JTA模型
规范中定义了JTA模型图如下:
包括五个参与者:
TM(transaction manager): 事务管理器提供支持事务界定、事务资源管理、同步和事务上下文传播所需的服务和管理功能。
AS(application server): 应用服务器提供了支持应用程序运行时环境所需的基础设施,其中包括事务状态管理。此类应用程序服务器的一个例子就是EJB服务器。jboss、weblogic、websphere等都是支持JTA规范的。注意:tomcat不支持JTA规范,所以只能使用第三方的TM库,如JOTM和Atomikos。将TM直接整合进应用中,不再依赖于AS。
RM(resource manager):资源管理器为应用程序提供对资源的访问。RM通过实现事务资源接口来参与分布式事务。这个事务资源接口是给TM用于沟通事务关联、事务完成和恢复工作的。例如关系数据库服务器。
AP(application program):一个基于组件的事务型