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

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

Jeremy Xu created SCB-805:
-----------------------------

             Summary: 当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


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)