You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/09/12 10:54:33 UTC

[incubator-servicecomb-saga] branch master updated: SCB-819 Fixed the accept test error of tcc demo

This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git


The following commit(s) were added to refs/heads/master by this push:
     new a0f1bbf  SCB-819 Fixed the accept test error of tcc demo
a0f1bbf is described below

commit a0f1bbf7f40e489b8205117cacba6d2f2afecf5a
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Wed Sep 12 18:54:22 2018 +0800

    SCB-819 Fixed the accept test error of tcc demo
---
 .../server/tcc/DefaultTransactionEventService.java    | 19 +++++++++----------
 .../saga/alpha/server/tcc/GrpcTccEventService.java    |  2 ++
 .../alpha/server/tcc/callback/TccCallbackEngine.java  |  5 ++++-
 3 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/DefaultTransactionEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/DefaultTransactionEventService.java
index 64bf8fd..9f119f4 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/DefaultTransactionEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/DefaultTransactionEventService.java
@@ -48,17 +48,16 @@ public final class DefaultTransactionEventService implements TransactionEventSer
   @Override
   public boolean addEvent(ParticipatedEvent participatedEvent) {
 
-    if (TransactionStatus.Succeed.equals(participatedEvent.getStatus())) {
-      REGISTRY
-          .computeIfAbsent(participatedEvent.getGlobalTxId(), key -> new LinkedHashSet<>())
-          .add(participatedEvent);
+    REGISTRY
+        .computeIfAbsent(participatedEvent.getGlobalTxId(), key -> new LinkedHashSet<>())
+        .add(participatedEvent);
+
+    LOG.info("Registered participated event, global tx: {}, local tx: {}, parent id: {}, "
+            + "confirm: {}, cancel: {}, status: {}, service [{}] instanceId [{}]",
+        participatedEvent.getGlobalTxId(), participatedEvent.getLocalTxId(), participatedEvent.getParentTxId(),
+        participatedEvent.getConfirmMethod(), participatedEvent.getCancelMethod(), participatedEvent.getStatus(),
+        participatedEvent.getServiceName(), participatedEvent.getInstanceId());
 
-      LOG.info("Registered participated event, global tx: {}, local tx: {}, parent id: {}, "
-              + "confirm: {}, cancel: {}, status: {}, service [{}] instanceId [{}]",
-          participatedEvent.getGlobalTxId(), participatedEvent.getLocalTxId(), participatedEvent.getParentTxId(),
-          participatedEvent.getConfirmMethod(), participatedEvent.getCancelMethod(), participatedEvent.getStatus(),
-          participatedEvent.getServiceName(), participatedEvent.getInstanceId());
-    }
     // TODO We need to updated the event which transactionStatus is failed.
     return true;
   }
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/GrpcTccEventService.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/GrpcTccEventService.java
index 323d58a..d3dad67 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/GrpcTccEventService.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/GrpcTccEventService.java
@@ -70,6 +70,8 @@ public class GrpcTccEventService extends TccEventServiceGrpc.TccEventServiceImpl
 
   @Override
   public void participate(GrpcTccParticipatedEvent request, StreamObserver<GrpcAck> responseObserver) {
+    LOG.info("Received participated event from service {} , global tx id: {}, local tx id: {}", request.getServiceName(),
+        request.getGlobalTxId(), request.getLocalTxId()) ;
     boolean ok = transactionEventService.addEvent(ParticipatedEventFactory.create(request));
     responseObserver.onNext(ok ? ALLOW : REJECT);
     responseObserver.onCompleted();
diff --git a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/TccCallbackEngine.java b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/TccCallbackEngine.java
index 82c5ba6..9b6ca59 100644
--- a/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/TccCallbackEngine.java
+++ b/alpha/alpha-server/src/main/java/org/apache/servicecomb/saga/alpha/server/tcc/callback/TccCallbackEngine.java
@@ -45,7 +45,10 @@ public class TccCallbackEngine implements CallbackEngine {
     boolean result = true;
     for (ParticipatedEvent event : transactionEventService.getEventByGlobalTxId(request.getGlobalTxId())) {
       try {
-        omegaCallbackWrapper.invoke(event, TransactionStatus.valueOf(request.getStatus()));
+        // only invoke the event is succeed
+        if (event.getStatus().equals(TransactionStatus.Succeed.toString())) {
+          omegaCallbackWrapper.invoke(event, TransactionStatus.valueOf(request.getStatus()));
+        }
       } catch (Exception ex) {
         logError(event, ex);
         result = false;