J2EE技术规范(5)——JTA(核心概念,ACID属性)
J2EE技术规范(五)——JTA(核心概念,ACID属性)理解事务处理的核心概念 什么是事务?事务是一种机制,把成组的操
J2EE技术规范(五)——JTA(核心概念,ACID属性)
理解事务处理的核心概念 什么是事务?事务是一种机制,把成组的操作视为一个操作进行处理在事务处理中,要么所有的操作都执行,要么所有的操作都不执行在事务中涉及的操作可能依赖于很多不同的数据库和服务器事务处理的ACID属性事务是由一系列首字母缩略词ACID属性定义的ACID代表:Atomic 原子性Consistent 一致性Isolated 独立性Durable 持久性
我们来看一个例子:未使用事务的资金转账过程:
成功的转账:

失败的转账过程:

我们看到失败的转账过程:总额减少,账户达到不一致的状态。
我们再看一下使用事务的成功转账过程:
A、将使用事务的变化进行缓冲

如果转账成功,将提交变化(使永久改变)

什么是分布式事务一种资源,如数据库,是由被称为资源管理器(RM)的软件控制的。本地事务是处理单个资源管理器的事务分布式事务是协同或横跨多个资源管理器的事务多个资源管理器的协作是由事务管理器完成的事务通常是指事务上下文(transaction context)。
两阶段提交协议2PC(两阶段提交)协议使用两个步骤提交一个分布式事务的变化阶段1请求所有的资源管理器准备实现改变,如果其中任何一个没有准备好,则该事务将异常中断阶段2请求所有的资源管理器实际提交并且实现永久的改变全局事务ID(XID)用于跟踪所有与分布式事务相关的改变。XA(扩展的体系结构)
XA:
是在WebLogic Server和资源管理器之间使用的接口实现两阶段提交协议允许编程控制由分布式事务所涉及的资源管理器

事务和资源管理器一个事务管理器协同几个资源管理器

两阶段提交协议被用于协同事务
我们看一下成功的两阶段提交:

我们很容易的看得出来:
阶段1:准备阶段
阶段2:实现提交
我们这部分主要讲解了事务的核心概念与ACID属性。