Tuxedo事务规范
DTP(Distributed Transaction Processing)分布式事务处理,指的是在分布式式计算中,管理和协调多个用户和多个数据库等共享资源之间的交互过程,DTP是TP的一种形式,它的工作流程如下:
1) AP通过TM提供的TX接口向TM发出请求,以开始一个全局事务,这时TM会分配一个GTRID来对这个事务进行标识
2) AP在事务上下文中使用ESQL来访问RM,以处理业务逻辑
3) TM与每一个参与全局事务的RM交换事务信息,当收到AP发出的结束事务指令时,TM会通过XA接口向各个RM发出指令,并通过两阶段提交协议来结束全局事务
注:AP-Application Program TM-Transaction Manager RM-Resource Manager
其中TX接口规范为AP和TM之间定义了通信接口,由TM实现,供AP调用;而XA接口是RM和TM之间的双向接口,由RM实现,供TM调用
Tuxedo除了支持标准的TX接口之外,还提供了自己一套XATMI接口,用于界定全局事务,可根据编程习惯自行选择,但不能混合使用。
系统管理员必须为每一种用到的RM创建专用的TMS,以便在UBBCONFIG中配置使用,buildtms命令用于创建TMS,它需要从一个名为RM的文件中读取RM信息,包括RM名、XA Switch名以及XA支持库,RM文件位于udataobj下,格式如下(分三段):
RM_NAME: XA_SWITCH_NAME: XA_LIBS
TMS使用TLOG记录事务日志以便恢复全局事务,每台Tuxedo主机上只需创建一个TLOG文件,被所有TMS共享使用,如果一个全局事务还没有完成,那么它在TLOG文件中将占用一个分页的空间即512KB,全局事务完成之后,在TLOG记录中的记录将被自动删除。
TUXEDO/SQL是Tuxedo自带的一个演示数据库系统,支持XA,可以和Tuxedo的事务系统很好的协同工作,使用一个VTOC(Volume table of Contents)磁盘设备来存储数据,VTOC是Tuxedo一种通用的文件格式,它按照磁盘分页来保存数据,除了TUXEDO/SQL之外,还有TUXCONFIG、BDMCONFIG和TLOG也会使用它来保存数据。
TUXEDO/Q是Tuxedo的一个重要的子系统,它为分布式联机事务处理应用程序提供了一种准实时的异步通信方式,支持持久和非持久的消息存储机制,提供面向事务的消息存取和转发机制,以及多样化的出队机制。TUXEDO/Q由队列空间、队列管理服务器、转发服务器和事务管理服务器组成,它为每一个消息提供了一个控制块,以便TUXEDO/Q和应用程序对消息的传输方式和过程进行控制跟踪。原则:Exactly-Only-Once
TMQUEUE是TUXEDO/Q的队列管理器,即RM,Tuxedo为它提供的事务管理器是TMS_QM。在一个VTOC上可以创建多个队列空间,在一个队列空间上又可以创建多个队列。TMQFORWARD的作用类似于EJB2.0规范中的Message Driven Bean。
TUXEDO/Q两种通信模式:
1、 点对点通信模式
两个对等实体通过一个独立的消息系统来实现消息的交换,它们发送和接收的都是消息本身,而不再是服务请求应答。点对点通信模式具有离线、异步、松耦合的特点,即使一方离线仍然可以通信。
2、 存储转发模式
对联机交易的有效补充,当网络中断或不可用的时,客户机可以把消息放到一个与服务同名的队列中,让TMQFORWARD去转发调用请求
在数据传输方面,Tuxedo只能算一个半成品,简而言之是一个基于消息的短事务交易平台,虽然能够保证单个ATMI调用中把消息可靠的传给对方,但没有为批量数据和大块数据的传输提供成型的解决方案,如数据分割和断电续传等特性