[ https://issues.apache.org/jira/browse/SCB-785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16561371#comment-16561371 ]
ASF GitHub Bot commented on SCB-785: ------------------------------------ WillemJiang commented on issue #232: [SCB-785] 支持在补偿方法里得到当前分布式事务的全局事务ID及本地事务ID URL: https://github.com/apache/incubator-servicecomb-saga/pull/232#issuecomment-408732047 @jeremyxu2010 You can ping me at https://gitter.im/ServiceCombUsers/Saga if you have any other question want to ask. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org > Cannot get the GlobalTxId and LocalTxId in the compensation method > ------------------------------------------------------------------ > > Key: SCB-785 > URL: https://issues.apache.org/jira/browse/SCB-785 > Project: Apache ServiceComb > Issue Type: Improvement > Components: Saga > Affects Versions: saga-0.2.0 > Reporter: Jeremy Xu > Priority: Minor > Fix For: saga-0.3.0 > > > 补偿方法里无法获取分布式事务的全局事务ID及本地事务ID > 因为在子事务业务处理方法中会将一部分中间数据存入外部缓存中,对应的补偿方法将可以通过这些中间数据进行合理的补偿操作,当时存入中间数据时会附带上globalTxId, > localTxId,后面将根据这个查找到之前存入的中间数据。但发现在业务方法中可以获取分布式事务的全局事务ID及本地事务ID,但对应的补偿方法里却不行。 > Customer may want to access the globalTxId and LocalTxId in application to > store these information into DB for the recovery. > 示例代码如下: > > {code:java} > @Autowired > OmegaContext omegaContext; > @Compensable(timeout=5, compensationMethod="cancel") > public boolean transferOut(String from, int amount) { > // 这里可以获得 > System.out.println(omegaContext.globalTxId()); > System.out.println(omegaContext.localTxId()); > repo.reduceBalanceByUsername(from, amount); > } > public boolean cancel(String from, int amount) { > // 这里不可以获得 > System.out.println(omegaContext.globalTxId()); > System.out.println(omegaContext.localTxId()); > repo.addBalanceByUsername(from, amount); > } > {code} > -- This message was sent by Atlassian JIRA (v7.6.3#76005)