数据源相关规范整理

  JTA规范学习整理

首先是关于JTA(Java Transaction AP)两个核心的概念事物和两阶段提交协议。

 

事务

所谓Transaction(事务)是指一系列不可分割的改动数据库的操作。在这个解释中,有三个关键词:一系列不可分割以及改动。仅仅是一个改动数据库的操作是没有Transaction可言,只有一系列操作(一组SQL语句)才可能组成Transaction不可分割就意味着一致性和完整性,要么这一系列操作全部commit,要么就全部rollback;如果一系列的操作只包含enquiry操作,那么这些操作也不是Transaction 
        
J2EE中,在J2EE中,Transaction主要有Bean-Managed TransactionContainer-Managed Transaction两大类。其中在Bean-Managed Transaction中还会分为JDBC TransactionJTA Transaction两种。

Java 事务 API(JTA) 及其同门兄弟 Java 事务服务(Java Transaction Service JTS) J2EE 平台提供了分布式事务服务。一个分布式的事务涉及一个事务管理器和一个或者多个资源管理器。一个资源管理器是任何类型的持久性的数据存储。事务管理器负责协调所有事务参与者之间的通信。

参考资料:http://www.cnblogs.com/perhaps/archive/2005/08/16/216386.html

http://tech.ddvip.com/java/jta/121990483658422_2.html

http://blog.csdn.net/muzijie927/archive/2006/10/27/1353307.aspx

         《事务服务浅析.doc

两阶段提交协议

实现分布式事务的关键就是两阶段提交协议。在此协议中,一个或多个资源管理器的活动均由一个称为事务协调器的单独软件组件来控制。此协议中的五个步骤如下:

1、应用程序调用事务协调器中的提交方法。

2、事务协调器将联络事务中涉及的每个资源管理器,并通知它们准备提交事务(这是第一阶段的开始)。

3、为了以肯定的方式响应准备阶段,资源管理器必须将自己置于以下状态:确保能在被要求提交事务时提交事务,或在被要求回滚事务时回滚事务。大多数资源管理器会将包含其计划更改的日记文件(或等效文件)写入持久存储区中。如果资源管理器无法准备事务,它会以一个否定响应来回应事务协调器。

4、事务协调器收集来自资源管理器的所有响应。

5、在第二阶段,事务协调器将事务的结果通知给每个资源管理器。如果任一资源管理器做出否定响应,则事务协调器会将一个回滚命令发送给事务中涉及的所有资源管理 器。如果资源管理器都做出肯定响应,则事务协调器会指示所有的资源管理器提交事务。一旦通知资源管理器提交,此后的事务就不能失败了。通过以肯定的方式响 应第一阶段,每个资源管理器均已确保,如果以后通知它提交事务,则事务不会失败。

原文地址:https://www.cnblogs.com/wangnbin/p/6058919.html