STMP(Simple Transaction Management Protocol) (二)

本文详细介绍了STMP协议中的事务处理,包括TRANS_BEGIN、TRANS_END、TRANS_CONTINUE、TRANS_SWITCH、TRANS_ABORT、TRANS_CANCEL和TRANS_UNI等原语,阐述了它们在事务管理中的作用和应用场景,并对比了与TCAP协议的异同。
摘要由CSDN通过智能技术生成

下午完成了java代码的实现,  源代码亦转移至github了, 地址: https://github.com/xzwdev/stmp.git

 

这个部分开始描述STMP协议在事务上的处理,  其实这部分与TCAP基本上保持了一致, 只是多了几个事务原语定义,  下面一一道来.

 

在描述这些事务原语之前, 必需先提一下STID(源事务ID)和DTID(目的事务ID),  所谓源和目的, 只是相对的概念,  只要这个事务ID是本地(自己)生成的, 站在本地的角度,

那它就是一个源事务ID, 否则它就是一个DTID, 有了这两个ID, STMP协议的事务逻辑才得以成立.

 

1. TRANS_BEGIN(事务开始)

            BEGIN用于开始一个事务, 通信双方都可以发起, 它有一个必要的字段, 即STID, 它用于在本地链路上标识一个唯一的事务, 在有些TCAP的实现中, 它可以是1 ~ 4

            四个字节, 也就是支持uchar, ushort, uint三种类型的事务ID. 不同的长度决定了并发事务的个数,  STMP并没有要求STID的长度或类型, 也就是说, 你可以将它置

            成一个字符串, 以类似于HashMap<String, Msg> 这样方式来持有事务, 一个BEGIN总是这样发生:

                                                             

             一个BEGIN发出之后,  在本地即开始了一个事务,  事务不可能无限期持有, 因此, 严谨的代码在这里会开启一个定时器, 超时到来时, 即可将事务异常结束.  从这一点

             上来看, 如果你发出一个BEGIN

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值