数据源相关规范整理

JTA规范学习整理

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

<!-- [if gte mso 10]> <mce:style><!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;} --> <!-- [endif]-->

事务

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值