X/Open DTP模型与XA协议的学习笔记,请大家指教!

问题描述

最近的任务是里了解XA协议。要了解XA协议,必须先了解X/OpenDTP模型,稍微总结一下:X/OpenDTP(DistributedTransactionProcess)是一个分布式事务模型。这个模型主要使用了两段提交(2PC-Two-Phase-Commit)来保证分布式事务的完整性。在这个模型里面,有三个角色:AP:Application,应用程序。也就是业务层。哪些操作属于一个事务,就是AP定义的。TM:TransactionManager,事务管理器。接收AP的事务请求,对全局事务进行管理,管理事务分支状态,协调RM的处理,通知RM哪些操作属于哪些全局事务以及事务分支等等。这个也是整个事务调度模型的核心部分。RM:ResourceManager,资源管理器。一般是数据库,也可以是其他的资源管理器,如消息队列(如JMS数据源),文件系统等。三者之间的关系如图:一般的编程方式是这样的:1.配置TM,通过TM或者RM提供的方式,把RM注册到TM。可以理解为给TM注册RM作为数据源。一个TM可以注册多个RM。1.AP从TM获取资源管理器的代理(例如:使用JTA接口,从TM管理的上下文中,获取出这个TM所管理的RM的JDBC连接或JMS连接)2.AP向TM发起一个全局事务。这时,TM会通知各个RM。XID(全局事务ID)会通知到各个RM。3.AP通过1中获取的连接,直接操作RM进行业务操作。这时,AP在每次操作时把XID(包括所属分支的信息)传递给RM,RM正是通过这个XID与2步中的XID关联来知道操作和事务的关系的。4.AP结束全局事务。此时TM会通知RM全局事务结束。5.开始二段提交,也就是prepare-commit的过程。XA协议(XASpecification),指的是TM和RM之间的接口。其实这个协议只是定义了xa_和ax_系列的函数原型以及功能描述、约束和实施规范等。至于RM和TM之间通过什么协议通信,则没有提及。目前知名的数据库,如Oracle,DB2等,都是实现了XA接口的,都可以作为RM。Tuxedo、TXseries等事务中间件可以通过XA协议跟这些数据源进行对接。Tuxedo使用TMS(开关文件)进行对各个RM的注册。TMS文件生成通过一个类似编译链接的方式完成。(这点我有点不是十分确定。如有错误请各位纠正)。Tuxedo分为客户端和服务端程序。按照我的理解,客户端就是AP,服务端是TMJTA(JavaTransactionAPI)是符合X/OpenDTP的一个编程模型,事务管理和资源管理器支架也是用了XA协议。WebSphere本身也实现了JTA接口,其中TM和RM之间也是使用XA协议和二段提交。WebSphere也可以通过XMLlink/XMLlinkWrapper和Tuxedo实现对接。WebLogic可以通过WTC(WebLogicTuxedoConnector)和Tuxedo进行对接。

解决方案

解决方案二:
http://www.infoq.com/cn/articles/xa-transactions-handle感觉这里说的比较清晰

时间: 2024-11-21 04:36:11

X/Open DTP模型与XA协议的学习笔记,请大家指教!的相关文章

对X/Open DTP模型、XA协议的理解,请大家轻拍

问题描述 最近的任务是里了解XA协议.要了解XA协议,必须先了解X/OpenDTP模型,稍微总结一下:X/OpenDTP(DistributedTransactionProcess)是一个分布式事务模型.这个模型主要使用了两段提交(2PC-Two-Phase-Commit)来保证分布式事务的完整性.在这个模型里面,有三个角色:•AP:Application,应用程序.也就是业务层.哪些操作属于一个事务,就是AP定义的.•TM:TransactionManager,事务管理器.接收AP的事务请求,

图解HTTP学习笔记——简单的HTTP协议

简单的HTTP协议 前言 最近在学习Web开发的相关知识,发现<图解HTTP>这本书通俗易懂.所以花时间学习这本书,并记录下学习笔记. 如上图,我们每天都在浏览网页,一般我们都是在浏览器地址栏输入要访问的网站的地址(如百度),按下回车,浏览器就显示了我们要访问的网站的网页. 那么在我们敲下回车键的那一刻,究竟发生了什么呢.通过今天的学习,能大致了解其中原理,并简单学习HTTP协议. 目录 1.客户端与服务器端2.HTTP是不保存状态的协议3.请求URI定位资源4.告知服务器意图的HTTP方法5

Akka学习笔记(五):Akka与Java的内存模型

Akka学习笔记(五):Akka与Java的内存模型 Akka简化了编写并发软件的过程,本文主要讨论Akka如何在并发应用中访问共享内存. Java内存模型 Java5之前的JMM是相当混乱的.多线程访问共享内存很有可能会得奇怪的结果,如: 可见性问题,无法及时看到其他线程写入的值 指令乱序,观测到其他线程不可能的行为 从Java 5的JSR 133的实现,很多问题就解决了.JMM是基于一组"happens-before"关联规则,限制了访问内存的行为必须在另一个内存访问行为之前发生.

TCP模型及其重点协议总结

概述 TCP/IP协议族,作为最早的协议模型(后来OSI七层也是在该基础上细分而来),每层都有一些重点的协议,面试时也会被询问,快要找工作,得做一些总结了 [1]TCP4层协议模型概述 [2]各层重点协议介绍 1.TCP4层协议模型概述 TCP与OSI对比图 其中Tcp各层重点协议如下图所示 网络层协议包括: [1]IP(Internet Protocol)协议 IP是网络层的核心,通过路由选择将下一条IP封装后交给接口层.IP数据报是无连接服务. [2]ICMP(Internet Contro

Websocket协议的学习、调研和实现

1. websocket是什么 Websocket是html5提出的一个协议规范,参考rfc6455. websocket约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信.在websocket出现之前,web交互一般是基于http协议的短连接或者长连接. WebSocket是为解决客户端与服务端实时通信而产生的技术.websocket协议本质上是一个基于tcp的协议,是先通过HTTP/HTTPS协议发

MQTT协议学习笔记

1.前沿 万物联网的时代即将到来,物联网也由当初的概念开始进一步落实.随着无线网络技术飞速发展,各种设备都可以连接网络,实现远程控制.例如智能家居最近非常火爆,智能插座.智能LED灯.智能摄像头等.在互联网时代,HTTP协议负责建立网络连接,而到了物联网时代,由于智能硬件的差异,相比互联网终端,硬件配置要低的多,而且智能设备的环境也想多复杂,物联网中的数据传输会面临很多问题,比如在网络不稳定的情况下,如果保证数据的传输没有问题,如何保证数据不被重复发送,连接断开后如何进行重连,而HTTP协议由于

UE学习笔记:心智模型二分法探讨

序:本文试对心智模型究竟为何物做出尝试性总结,以建立分类清晰.可操作性强的心智模型研究方法,从而提供对设计师有直接帮助的研究产出物,并使该概念在用户体验设计(UXD,下同)领域更可用.感谢伟大领袖咪咪翘·猴的评审指导~~~ 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://piglili.blogbus.com/logs/52720359.html 1. 心智模型概念综述 表1:心智模型定义综述 心理学 将其他领域的知识与经验更好地融入UXD,如市场营销对心智模型的探

WPF and Silverlight学习笔记(十一):WPF控件内容模型

WPF控件内容模型主要指派生于System.Windows.Controls.Control类的各种 控件,其主要分为四部分: ContentControl HeaderedContendControl ItemsControl< /p> HeaderedItemsControl 其继承关系请参考我上一篇博客的内容. 这四个类用作为 WPF 中大多数控件的基类.使用这些内容模型的类可以 包含相同类型的内容,并以相同的方式处理该内容:可以放置在某个 ContentControl(或从 Conte

WPF and Silverlight学习笔记(十):WPF控件模型

WPF对控件其类型的继承方式如下 (其中绿色表示的类是抽象类,蓝色表示的类是非抽象类) 控 件内容模型 System.Windows.Controls.Control类:表示 用户界面 (UI) 元素的基类,这些元素使用ControlTemplate来定义其外观 ContentControl:ContentControl 是一种包含一段内容的 Control 说明 ContentControl 是一种包含一段内容的 Control. 内容属性 Content 内容模型信息 控件内容模型概述 属于