日期:2014-05-19  浏览次数:20705 次

J2EE技术规范(五)——JTA(核心概念,ACID属性)

理解事务处理的核心概念

 什么是事务?

  • 事务是一种机制,把成组的操作视为一个操作进行处理
  • 在事务处理中,要么所有的操作都执行,要么所有的操作都不执行
  • 在事务中涉及的操作可能依赖于很多不同的数据库和服务器

事务处理的ACID属性

  • 事务是由一系列首字母缩略词ACID属性定义的
  • ACID代表:
    • Atomic 原子性
    • Consistent 一致性
    • Isolated 独立性
    • Durable 持久性

我们来看一个例子:未使用事务的资金转账过程:

成功的转账:

失败的转账过程:


我们看到失败的转账过程:总额减少,账户达到不一致的状态。

我们再看一下使用事务的成功转账过程:

A、将使用事务的变化进行缓冲


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


什么是分布式事务

  • 一种资源,如数据库,是由被称为资源管理器(RM)的软件控制的。
  • 本地事务是处理单个资源管理器的事务
  • 分布式事务是协同或横跨多个资源管理器的事务
  • 多个资源管理器的协作是由事务管理器完成的
  • 事务通常是指事务上下文(transaction context