Java事务API(Java Transaction API,简称JTA ) 是一个Java企业版 的应用程序接口,
JTA和它的同胞Java事务服务(JTS;Java TransactionService),为J2EE平台提供了分布式事务服务。不过JTA只是提供了一个接口,并没有提供具体的实现,而是由j2ee服务器提供商 根据JTS规范提供的,常见的JTA实现有以下几种:
(1) J2EE容器所提供的JTA实现(JBoss)
(2) 独立的JTA实现:如JOTM,Atomikos.这些实现可以应用在那些不使用J2EE应用服务器的环境里用以提供分布事事务保证。如Tomcat,Jetty以及普通的java应用。
JTA 深度历险 - 原理与实现
关于分布式事务、两阶段提交协议、三阶提交协议
Java中的事务——JDBC事务和JTA事务
标准的分布式事务
- 一个分布式事务(Distributed Transaction)包括一个事务管理器(transaction manager)和一个或多个资源管理器(resource manager)。
-
事务管理器(transaction manager)承担着所有事务参与单元者的相互通讯的责任。
image.png - 资源管理器(resource manager)是任意类型的持久化数据存储, 但是资源管理器要实现
XA
接口规范;
image.png - 不是使用了
UserTransaction
就能把普通的JDBC操作直接转成JTA操作,JTA对DataSource、Connection和Resource 都是有要求的,只有符合XA规范,并且实现了XA规范的相关接口的类才能参与到JTA事务中来, 目前主流的数据库都支持XA规范。XA规范也就是一个协调者(事务管理器)通过两阶段或三阶段提交协议,协调多个参与者(资源管理器), 提交或回滚事务.
网友评论