- 
                Notifications
    
You must be signed in to change notification settings  - Fork 8.9k
 
Operate transactions design
        WangLiang/王良 edited this page Jan 9, 2024 
        ·
        38 revisions
      
    - 重试: GlobalStatus.Committing, GlobalStatus.CommitRetrying, GlobalStatus.Committed, GlobalStatus.TimeoutRollbacking,GlobalStatus.TimeoutRollbackRetrying, GlobalStatus.RollbackRetrying, GlobalStatus.Rollbacking
 - 失败: CommitFailed,RollbackFailed,TimeoutRollbackFailed,CommitRetryTimeout, RollbackRetryTimeout
 - 其他: Begin,AsyncCommitting,Committed,Rollbacked,Finished
 
下⽂的 重试 ,失败 状态指上述这些状态





注意:定时任务跳过该全局事务为PhaseTwo_STOP_Retryable的状态即可


将失败的修改为重试状态:
- CommitFailed / RollbackFailed :是否要考虑超时时间问题,因为这期间可能过了很久,修改后会⻢上超时⽽失败
 - 针对TimeoutRollbackFailed / CommitRetryTimeout / RollbackRetryTimeout,有两个做法
- 不⽀持修改,直接报错
 - ⽀持修改,但需要需要传⼊新的超时时间
 
 

- 已结束的全局事务状态有:
- 失败的状态:CommitFailed,RollbackFailed,TimeoutRollbackFailed,CommitRetryTimeout,RollbackRetryTimeout
 - 其他状态:Committed,Rollbacked,Finished
 
 - 还未结束的全局事务:
- Committing, CommitRetrying, AsyncCommitting, Committed
 - TimeoutRollbacking, TimeoutRollbackRetrying, RollbackRetrying, Rollbacking
 - Begin
 
 
分⽀事务⼤部分状态未持久化,因此操作仍⽤全局事务状态作为依据。



注意:定时任务跳过该分⽀事务为
PhaseTwo_STOP_Retryable的状态即可

由于前端页面较为简单,操作功能,仅在原列表的后面添加一列,这里就不提供设计图了。