前面关于活动系统的数据一致性,是用事务来完成的。
但是现在都是大数据,因此都会存在跨库的事务。所以对这个进行了一些了解,做下整理。
J2EE规范
ØJDBC
Ø……
ØJTA
ü JTA定义了一种标准API,应用系统由此可以访问各种事务监控。
ØJTS
üCORBA OTS事务监控的基本实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API(JTA)规范.JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
JTA介绍
在 J2EE 应用中,事务是一个不可或缺的组件模型,它保证了用户操作的 ACID(即原子、一致、隔离、持久)属性。对于只操作单一数据源的应用,可以通过本地资源接口实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的事务管理方式
JTA架构图
JTA例子
UserTransactionuserTx = null;
Try{
// 启动事务 userTx.begin();
Sql操作
// 提交事务 userTx.commit();
}catch(){
// 发生异常,回滚事务userTx.rollback();
}
JTA框架
面向开发人员的使用接口(事务管理器)
面向服务提供商的实现接口(资源管理器)
JTA开发人员接口
Øbegin()- 开始一个分布式事务
Øcommit()- 提交事务
Ørollback()- 回滚事务
ØgetStatus()- 返回关联到当前线程的分布式事务的setRollbackOnly()- 标识关联到当前线程的分布式事务将被回滚
JTA面向提供商
TransactionManager 和 Transaction 两个对象
JTA实现类图
分布事务的提交
•1、预交阶段
•2、并向所有投“提交”票的子事务发失败命令,否则向它们发提交命令
JTA参考文档
•http://www.ibm.com/developerworks/cn/java/j-lo-jta/
•
•http://wenku.baidu.com/link?url=5Eyb6gaZ5DzcjBDi817UdxA5lq4oAmZO0BxPIh8O2pG1DAH3lwhvfT5nd_KpQlvu61iB9DOFS-sysBcEpXzAUWU4YfMWNyavFCu8xdnON9K