JTA 跨库事务

前面关于活动系统的数据一致性,是用事务来完成的。

但是现在都是大数据,因此都会存在跨库的事务。所以对这个进行了一些了解,做下整理。

J2EE规范

ØJDBC
Ø……
ØJTA
ü JTA定义了一种标准API,应用系统由此可以访问各种事务监控。
ØJTS
üCORBA OTS事务监控的基本实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction APIJTA规范.JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。

JTA介绍

   在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)JTA J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的事务管理方式

 

JTA架构

jta架构图

 

JTA例子

UserTransactionuserTx = null;

Try

// 启动事务 userTx.begin();

Sql操作

// 提交事务 userTx.commit();

catch(){

  // 发生异常,回滚事务userTx.rollback();

 

 

JTA框架

面向开发人员的使用接口(事务管理器)           

面向服务提供商的实现接口(资源管理器

 

JTA开发人员接口

Øbegin()- 开始一个分布式事务
Øcommit()- 提交事务
Ørollback()- 回滚事务

 

ØgetStatus()- 返回关联到当前线程的分布式事务setRollbackOnly()- 标识关联到当前线程的分布式事务将被回滚
 
JTA面向提供商

TransactionManager 和 Transaction 两个对象

 

JTA实现类图

JTA实现类图

 

分布事务的提交

•1、预交阶段

 

•2、并向所有投“提交”票的子事务发失败命令,否则向它们发提交命令
JTA参考文档

猜你喜欢

转载自bushyou.iteye.com/blog/2193555
JTA