diff --git a/dtmsvr/trans.go b/dtmsvr/trans.go index 77583aa..32e4eda 100644 --- a/dtmsvr/trans.go +++ b/dtmsvr/trans.go @@ -118,22 +118,23 @@ func (t *TransGlobal) getProcessor() transProcessor { // Process process global transaction once func (t *TransGlobal) Process(db *common.DB, waitResult bool) dtmcli.M { + r := t.process(db, waitResult) + TransactionMetrics(t, r["dtm_result"] == dtmcli.ResultSuccess) +} + +func (t *TransGlobal) process(db *common.DB, waitResult bool) dtmcli.M { if !waitResult { go t.processInner(db) - TransactionMetrics(t, true) return dtmcli.MapSuccess } submitting := t.Status == dtmcli.StatusSubmitted err := t.processInner(db) if err != nil { - TransactionMetrics(t, false) return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": err.Error()} } if submitting && t.Status != dtmcli.StatusSucceed { - TransactionMetrics(t, false) return dtmcli.M{"dtm_result": dtmcli.ResultFailure, "message": "trans failed by user"} } - TransactionMetrics(t, true) return dtmcli.MapSuccess }