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属性。

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值