(STITP)jotm-btp的深入分析

      对照着BTP协议,把jotm-btp的代码看了两遍,终于有了点比较深入的理解了,是时候写下点心得了。

 

      首先是说说jotm-btp与jotm的关系。从字面上看,jotm-btp显然是jotm的一个扩展。具体的说来,在前者的代码中直接调用了后者的:ControlImpl、Resource、TransactionFactory、TransactionFactoryImpl等这几个类或接口。TransactionFactoryImpl用来创建事务ID,在Decider中一个事务ID唯一对应一个ControlImpl对象;ControlImpl是事务控制中最重要的类了,jotm-btp直接调用该类来实现事务的提交和回滚控制(即沿用了jotm的事务控制方式),具体的准备、提交和回滚实现,通过调用Resource接口来完成;jotm-btp的SOAPResource类实现了Resource接口,供ControlImpl调用,完成BTP定义的事务处理方式。

 

       接着我来分析下jotm-btp对BTP的实现方式。在这里我举三个典型的过程:beginning、enrolling和confirming。

 

       首先是beginning的实现过程,如下图所示:


       接着是enrolling的实现过程:

 最后是confirming的实现过程,实现事务的最后提交:

        以上实现中,所有的Terminator和Decider、Participant和Decider的数据通信都是通过Axis的WebService方式实现的。

      

        另外,通过分析源代码发现,jotm-btp并没有完全实现BTP中的另一种事务模式——cohesion模式。它只能进行简单的提交操作,如果遇到错误,仅仅是返回error、提示错误,而没有实现事务的回滚操作。我想这就是我们要完善的地方了……

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值