[
https://issues.apache.org/jira/browse/SCB-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lei Zhang resolved SCB-1622.
----------------------------
Fix Version/s: pack-0.6.0
Resolution: Fixed
> Improve the transaction compensation mechanism
> ----------------------------------------------
>
> Key: SCB-1622
> URL: https://issues.apache.org/jira/browse/SCB-1622
> Project: Apache ServiceComb
> Issue Type: Task
> Components: Saga
> Reporter: Lei Zhang
> Assignee: Lei Zhang
> Priority: Major
> Fix For: pack-0.6.0
>
>
> Currently, Alpha compensation mechanism has some defects [1],When the
> compensation method fails, only the output log without throwing an exception.
> Alpha does not know that the compensation method failed.
>
> Step1: Modify the OnConnected method to bidirectional streaming RPC
> This will be needed for the Step2
>
> Step2: Catch an exception and send a compensation result to Alpha in the
> compensation method[1] on the Omega side. Alpha waits for compensation result
> and catching exception after calling compensation method
> 1. Received TxCompensateSucceedAckEvent: transaction completed
> 2. Received TxCompensateFailedAckEvent: throw
> BusinessCompensationFailureException
> 3. catch other exception throw OmegaConnectedException
>
> Step3. Added retry and timeout rule to compensate for failures
> Exceeded the number of retries or timeout will change state to suspended
> [1] [https://github.com/apache/servicecomb-pack/issues/590]
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)