leezongjie

Results 2 issues of leezongjie

当参与者使用tcc注解@TwoPhaseBusinessAction时,同时添加@GlobalTransactional,比如在使用嵌套事务的场景下,目前2.x从1.x改造完tcc去spring后,无法同时添加两个注解切面。 1. 本pr修复了该问题,修复方案为遍历所有的InterfaceParser全部做解析,解析完成拿到ProxyInvocationHandler后,根据指定排序组织成一个代理链,执行调用时,按序进入多个切面。 2. 修复后支持添加多种类型的注解,比如@GlobalTransactional和@TwoPhaseBusinessAction为两类,可以同时添加。@TwoPhaseBusinessAction和saga注解化@CompensationBusinessAction是同一类,只允许添加一种,重复添加时启动阶段报错。 3. 切面进入顺序,@TwoPhaseBusinessAction优先@GlobalTransactional。

type: bug
module/tcc
module/intergration-tx-api

支持saga注解的两阶段事务提交方式。 1、saga分支事务也分为两阶段,和tcc类似,区别在于,当saga事务提交时,一阶段直接提交,无需二阶段,即退化了tcc的二阶段提交,只有事务需要回滚时才会执行二阶段对一阶段提交的事务数据进行补偿。 2、新增saga注解CompensationBusinessAction,对需要使用saga模式的分支事务服务接口或者实现添加该注解。 3、由于和tcc流程类似,saga-annotation模式复用了大部分tcc的流程,对其中特殊的地方做了重写。 4、saga注解模式相比状态机暂时不支持向前重试能力。 5、防悬挂可复用tcc防悬挂,当前防悬挂问题另开PR处理。

type: feature
mode: SAGA