Skip to content

Commit

Permalink
bugfix: tcc sample check tx status error (#683)
Browse files Browse the repository at this point in the history
  • Loading branch information
funky-eyes committed May 23, 2024
1 parent 3ae0a30 commit 39ccfba
Show file tree
Hide file tree
Showing 10 changed files with 37 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ public interface TccActionOne {
* @param a the a
* @return the boolean
*/
@TwoPhaseBusinessAction(name = "DubboTccActionOne", commitMethod = "commit", rollbackMethod = "rollback")
boolean prepare(BusinessActionContext actionContext, @BusinessActionContextParameter(paramName = "a") int a);
boolean prepare(BusinessActionContext actionContext, int a);

/**
* Commit boolean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ public interface TccActionTwo {
* @param list the list
* @return the boolean
*/
@TwoPhaseBusinessAction(name = "DubboTccActionTwo", commitMethod = "commit", rollbackMethod = "rollback")
public boolean prepare(BusinessActionContext actionContext,
@BusinessActionContextParameter(paramName = "b") String b,
@BusinessActionContextParameter(paramName = "c", index = 1) List list);
boolean prepare(BusinessActionContext actionContext, String b, List list);

/**
* Commit boolean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,17 @@
package org.apache.seata.action.impl;

import io.seata.rm.tcc.api.BusinessActionContext;
import io.seata.rm.tcc.api.BusinessActionContextParameter;
import io.seata.rm.tcc.api.TwoPhaseBusinessAction;
import org.apache.seata.action.ResultHolder;
import org.apache.seata.action.TccActionOne;
import org.springframework.util.Assert;

public class TccActionOneImpl implements TccActionOne {

@Override
public boolean prepare(BusinessActionContext actionContext, int a) {
@TwoPhaseBusinessAction(name = "DubboTccActionOne", commitMethod = "commit", rollbackMethod = "rollback")
public boolean prepare(BusinessActionContext actionContext,@BusinessActionContextParameter(paramName = "a") int a) {
String xid = actionContext.getXid();
System.out.println("TccActionOne prepare, xid:" + xid + ", a:" + a);
return true;
Expand All @@ -32,6 +36,7 @@ public boolean prepare(BusinessActionContext actionContext, int a) {
@Override
public boolean commit(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("a") != null);
System.out.println("TccActionOne commit, xid:" + xid + ", a:" + actionContext.getActionContext("a"));
ResultHolder.setActionOneResult(xid, "T");
return true;
Expand All @@ -40,6 +45,7 @@ public boolean commit(BusinessActionContext actionContext) {
@Override
public boolean rollback(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("a") != null);
System.out.println("TccActionOne rollback, xid:" + xid + ", a:" + actionContext.getActionContext("a"));
ResultHolder.setActionOneResult(xid, "R");
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,11 @@
import java.util.List;

import io.seata.rm.tcc.api.BusinessActionContext;
import io.seata.rm.tcc.api.BusinessActionContextParameter;
import io.seata.rm.tcc.api.TwoPhaseBusinessAction;
import org.apache.seata.action.ResultHolder;
import org.apache.seata.action.TccActionTwo;
import org.springframework.util.Assert;

/**
* The type Tcc action two.
Expand All @@ -30,7 +33,9 @@
public class TccActionTwoImpl implements TccActionTwo {

@Override
public boolean prepare(BusinessActionContext actionContext, String b, List list) {
@TwoPhaseBusinessAction(name = "DubboTccActionTwo", commitMethod = "commit", rollbackMethod = "rollback")
public boolean prepare(BusinessActionContext actionContext, @BusinessActionContextParameter(paramName = "b") String b,
@BusinessActionContextParameter(paramName = "c", index = 1) List list) {
String xid = actionContext.getXid();
System.out.println("TccActionTwo prepare, xid:" + xid + ", b:" + b + ", c:" + list.get(1));
return true;
Expand All @@ -39,6 +44,8 @@ public boolean prepare(BusinessActionContext actionContext, String b, List list)
@Override
public boolean commit(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("b") != null);
Assert.isTrue(actionContext.getActionContext("c") != null);
System.out.println(
"TccActionTwo commit, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext
.getActionContext("c"));
Expand All @@ -49,6 +56,8 @@ public boolean commit(BusinessActionContext actionContext) {
@Override
public boolean rollback(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("b") != null);
Assert.isTrue(actionContext.getActionContext("c") != null);
System.out.println(
"TccActionTwo rollback, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext
.getActionContext("c"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
package org.apache.seata.stater;

import io.seata.common.util.StringUtils;
import io.seata.core.context.RootContext;
import org.apache.seata.service.TccTransactionService;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.util.Assert;
Expand All @@ -44,9 +43,6 @@ private static void transactionCommitDemo() throws InterruptedException {
System.out.println(txId);
Assert.isTrue(StringUtils.isNotEmpty(txId), "事务开启失败");

//wait commit
Thread.sleep(3000);
tccTransactionService.checkBranchTransaction(txId,true);
System.out.println("transaction commit demo finish.");
}

Expand All @@ -60,7 +56,6 @@ private static void transactionRollbackDemo() throws InterruptedException {

//wait rollback
Thread.sleep(3000);
tccTransactionService.checkBranchTransaction(RootContext.getXID(),false);

System.out.println("transaction rollback demo finish.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,6 @@ private static void transactionRollbackDemo() throws InterruptedException {

//wait rollback
Thread.sleep(3000);
tccTransactionService.checkBranchTransaction(RootContext.getXID(),false);


System.out.println("transaction rollback demo finish.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,7 @@ public interface TccActionOne {
* @param a the a
* @return the boolean
*/
@TwoPhaseBusinessAction(name = "SofaTccActionOne", commitMethod = "commit", rollbackMethod = "rollback")
boolean prepare(BusinessActionContext actionContext, @BusinessActionContextParameter(paramName = "a") int a);
boolean prepare(BusinessActionContext actionContext, int a);

/**
* Commit boolean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ public interface TccActionTwo {
* @param list the list
* @return the boolean
*/
@TwoPhaseBusinessAction(name = "SofaTccActionTwo", commitMethod = "commit", rollbackMethod = "rollback")
boolean prepare(BusinessActionContext actionContext,
@BusinessActionContextParameter(paramName = "b") String b,
@BusinessActionContextParameter(paramName = "c", index = 1) List list);
boolean prepare(BusinessActionContext actionContext, String b, List list);

/**
* Commit boolean.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,20 @@
import com.alipay.sofa.runtime.api.annotation.SofaService;
import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
import io.seata.rm.tcc.api.BusinessActionContext;
import io.seata.rm.tcc.api.BusinessActionContextParameter;
import io.seata.rm.tcc.api.TwoPhaseBusinessAction;
import org.apache.seata.action.ResultHolder;
import org.apache.seata.action.TccActionOne;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

@SofaService(interfaceType = TccActionOne.class, bindings = { @SofaServiceBinding(bindingType = "bolt") })
@Service
public class TccActionOneImpl implements TccActionOne {

@Override
public boolean prepare(BusinessActionContext actionContext, int a) {
@TwoPhaseBusinessAction(name = "SofaTccActionOne", commitMethod = "commit", rollbackMethod = "rollback")
public boolean prepare(BusinessActionContext actionContext,@BusinessActionContextParameter(paramName = "a") int a) {
String xid = actionContext.getXid();
System.out.println("TccActionOne prepare, xid:" + xid + ", a:" + a);
return true;
Expand All @@ -37,6 +41,7 @@ public boolean prepare(BusinessActionContext actionContext, int a) {
@Override
public boolean commit(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("a") != null);
System.out.println("TccActionOne commit, xid:" + xid + ", a:" + actionContext.getActionContext("a"));
ResultHolder.setActionOneResult(xid, "T");
return true;
Expand All @@ -45,6 +50,7 @@ public boolean commit(BusinessActionContext actionContext) {
@Override
public boolean rollback(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("a") != null);
System.out.println("TccActionOne rollback, xid:" + xid + ", a:" + actionContext.getActionContext("a"));
ResultHolder.setActionOneResult(xid, "R");
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,12 @@
import com.alipay.sofa.runtime.api.annotation.SofaService;
import com.alipay.sofa.runtime.api.annotation.SofaServiceBinding;
import io.seata.rm.tcc.api.BusinessActionContext;
import io.seata.rm.tcc.api.BusinessActionContextParameter;
import io.seata.rm.tcc.api.TwoPhaseBusinessAction;
import org.apache.seata.action.ResultHolder;
import org.apache.seata.action.TccActionTwo;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;

import java.util.List;

Expand All @@ -35,7 +38,8 @@
public class TccActionTwoImpl implements TccActionTwo {

@Override
public boolean prepare(BusinessActionContext actionContext, String b, List list) {
@TwoPhaseBusinessAction(name = "SofaTccActionTwo", commitMethod = "commit", rollbackMethod = "rollback")
public boolean prepare(BusinessActionContext actionContext, @BusinessActionContextParameter(paramName = "b") String b, @BusinessActionContextParameter(paramName = "c", index = 1) List list) {
String xid = actionContext.getXid();
System.out.println("TccActionTwo prepare, xid:" + xid + ", b:" + b + ", c:" + list.get(1));
return true;
Expand All @@ -44,6 +48,8 @@ public boolean prepare(BusinessActionContext actionContext, String b, List list)
@Override
public boolean commit(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("b") != null);
Assert.isTrue(actionContext.getActionContext("c") != null);
System.out.println(
"TccActionTwo commit, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext
.getActionContext("c"));
Expand All @@ -54,6 +60,8 @@ public boolean commit(BusinessActionContext actionContext) {
@Override
public boolean rollback(BusinessActionContext actionContext) {
String xid = actionContext.getXid();
Assert.isTrue(actionContext.getActionContext("b") != null);
Assert.isTrue(actionContext.getActionContext("c") != null);
System.out.println(
"TccActionTwo rollback, xid:" + xid + ", b:" + actionContext.getActionContext("b") + ", c:" + actionContext
.getActionContext("c"));
Expand Down

0 comments on commit 39ccfba

Please sign in to comment.