You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@servicecomb.apache.org by "Willem Jiang (JIRA)" <ji...@apache.org> on 2018/08/06 01:51:00 UTC

[jira] [Assigned] (SCB-805) 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted

     [ https://issues.apache.org/jira/browse/SCB-805?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Willem Jiang reassigned SCB-805:
--------------------------------

    Assignee: Jeremy Xu

> 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted
> ----------------------------------------
>
>                 Key: SCB-805
>                 URL: https://issues.apache.org/jira/browse/SCB-805
>             Project: Apache ServiceComb
>          Issue Type: Improvement
>          Components: Saga
>    Affects Versions: saga-0.2.0
>            Reporter: Jeremy Xu
>            Assignee: Jeremy Xu
>            Priority: Minor
>             Fix For: saga-0.3.0
>
>
> RT, 当alpha与omega所在节点的时间不同步时,分布式事务会被异常aborted。检查代码发现alpha侧创建TxEvent时用到了omega侧传过来的时间戳。
> {code:java}
> @Override
> public void onTxEvent(GrpcTxEvent message, StreamObserver<GrpcAck> responseObserver) {
>   boolean ok = txConsistentService.handle(new TxEvent(
>       message.getServiceName(),
>       message.getInstanceId(),
>       new Date(message.getTimestamp()),  // 这里用到了omega侧传过来的时间戳
>       message.getGlobalTxId(),
>       message.getLocalTxId(),
>       message.getParentTxId().isEmpty() ? null : message.getParentTxId(),
>       message.getType(),
>       message.getCompensationMethod(),
>       message.getTimeout(),
>       message.getRetryMethod(),
>       message.getRetries(),
>       message.getPayloads().toByteArray()
>   ));{code}
>  
> 这里感觉可以直接用收到TxEvent的时间,即*new Date()*即可。



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)