事务处理的nuts和bolts <二>

事务处理 - 体系
看到了从头开始建造一个事务性应用的要点,考虑在一个在 图 2 中展示的事务处理体系下建造相同的应用。注意,尽管有多种可能的体系,它们将在后面的章节中讨论, 图 2 中所展示的代表了本质的特征。

事务处理的nuts和bolts <二>

应用构件

应用构件是事务性资源的客户。它们是应用开发者用于实现商务事务的程序。
在事务管理器的帮助下,这些构件建立全局事务, 如果需要的话传播事务上下文,并在这些事务的范围内操作事务性资源。这些构件不负责实现保护事务的 ACID 属性。但是作为应用逻辑的一部分 ,这些构件通常做是提交还是回滚一个事务的决定。

应用构件:职责
  •     建立和界定事务
  •     传播事务上下文
  •     通过资源管理器操作数据


资源管理器

一个资源管理器是一个管理持久和稳定的数据存储系统的构件,并且参与同事务管理器的两段提交和恢复协议。

一个资源管理器典型的是一个稳定的存储系统上的一个驱动器或一个包装,有操作数据的接口(给应用构件), 并且为了参与由事务服务器协调的两阶段提交和恢复协议。这个构件也可以,直接的或间接的,向事务管理器注册资源,这样事务管理器就可以追踪所有参与事务的资源。这个过程叫做资源征集。为了实现两阶段提交和恢复协议,资源管理器应该实现可能被恢复所使用的附加机制。

资源管理器提供两套接口: 一套给应用构件用来连接和完成对数据的操作,另一套给事务管理器用来参与两阶段提交和恢复协议。

资源管理器:职责 

  •     向事务服务器应征资源
  •     参与两阶段提交和恢复协议


事务管理器


事务管理器是一个事务处理环境的核心构件。它的主要职责是当应用构件要求时建立事务,允许资源征集和遣散,并指挥同资源管理器的两阶段提交或恢复协议。

一个典型的事务性应用通过向事务管理器发出一个发起事务的请求来开始一个事务。作为响应,事务管理器开始一个事务并把它同一个呼叫线程联系在一起。事务管理器也建立一个事务上下文。在事务中的所有应用构件和/或线程共享事务上下文。初始发起开始事务的请求的线程,或者如果事务管理器允许的话,任何其他线程可以通过发起提交或回滚请求来最终终止事务。

在一个事务被终止之前,在事务管理器所知道的多个数据上,多个构件和/或线程可以完成事务性操作。如果事务管理器允许的话,在事务最终完成之前,一个事务可以被挂起或被继续执行。

一旦应用发起了提交请求,事务管理器为一个提交操作准备所有资源(通过指挥一次投票表决),并基于是否所有的资源都准备好了(就绪)提交,来发起对所有资源的一个提交或回滚请求。

事务管理器:职责
  •    建立和维护事务上下文
  •    维护一个事务和特定的资源间的关联
  •    发起并指挥两阶段提交和恢复协议
  •    在开始两阶段提交和恢复过程之前向应用构件们做同步呼叫


下面的章节讨论事务处理相关的各种概念。

你可能感兴趣的:(多线程,编程,应用服务器,活动)