From abda3b43b16899f8571612ada62d3378342f6729 Mon Sep 17 00:00:00 2001 From: yedf2 <120050102@qq.com> Date: Thu, 10 Feb 2022 16:47:08 +0800 Subject: [PATCH] add msg barrier unique key conflict --- dtmcli/barrier.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dtmcli/barrier.go b/dtmcli/barrier.go index 251611d..898f831 100644 --- a/dtmcli/barrier.go +++ b/dtmcli/barrier.go @@ -8,6 +8,7 @@ package dtmcli import ( "database/sql" + "errors" "fmt" "net/url" @@ -82,6 +83,10 @@ func (bb *BranchBarrier) Call(tx *sql.Tx, busiCall BarrierBusiFunc) (rerr error) rerr = oerr } + if bb.Op == "msg" && currentAffected == 0 { // for msg's DoAndSubmit, repeated insert should be rejected. + return errors.New("unique key conflict") + } + if (ti.Op == BranchCancel || ti.Op == BranchCompensate) && originAffected > 0 || // null compensate currentAffected == 0 { // repeated request or dangled request return