diff --git a/dtmgrpc/tcc.go b/dtmgrpc/tcc.go index 0fd5b7d..bd1b336 100644 --- a/dtmgrpc/tcc.go +++ b/dtmgrpc/tcc.go @@ -75,16 +75,15 @@ func TccFromGrpc(ctx context.Context) (*TccGrpc, error) { func (t *TccGrpc) CallBranch(busiMsg proto.Message, tryURL string, confirmURL string, cancelURL string, reply interface{}) error { branchID := t.NewSubBranchID() bd, err := proto.Marshal(busiMsg) - if err != nil { - return err + if err == nil { + _, err = dtmgimp.MustGetDtmClient(t.Dtm).RegisterBranch(context.Background(), &dtmgpb.DtmBranchRequest{ + Gid: t.Gid, + TransType: t.TransType, + BranchID: branchID, + BusiPayload: bd, + Data: map[string]string{"confirm": confirmURL, "cancel": cancelURL}, + }) } - _, err = dtmgimp.MustGetDtmClient(t.Dtm).RegisterBranch(context.Background(), &dtmgpb.DtmBranchRequest{ - Gid: t.Gid, - TransType: t.TransType, - BranchID: branchID, - BusiPayload: bd, - Data: map[string]string{"confirm": confirmURL, "cancel": cancelURL}, - }) if err != nil { return err }