|
|
|
@ -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 |
|
|
|
|