diff --git a/dtmsvr/trans_xa_test.go b/dtmsvr/trans_xa_test.go index 851f9c6..9f2d0ae 100644 --- a/dtmsvr/trans_xa_test.go +++ b/dtmsvr/trans_xa_test.go @@ -43,7 +43,7 @@ func xaRollback(t *testing.T) { xc := examples.XaClient gid := "xaRollback" err := xc.XaGlobalTransaction(gid, func(xa *dtmcli.Xa) error { - req := examples.GenTransReq(30, false, true) + req := &examples.TransReq{Amount: 30, TransInResult: "FAILURE"} resp, err := xa.CallBranch(req, examples.Busi+"/TransOutXa") common.CheckRestySuccess(resp, err) resp, err = xa.CallBranch(req, examples.Busi+"/TransInXa") diff --git a/examples/main_msg.go b/examples/main_msg.go index 81c2ee5..16e9a62 100644 --- a/examples/main_msg.go +++ b/examples/main_msg.go @@ -13,11 +13,7 @@ func MsgSetup(app *gin.Engine) { // MsgFireRequest 1 func MsgFireRequest() string { logrus.Printf("a busi transaction begin") - req := &TransReq{ - Amount: 30, - TransInResult: "SUCCESS", - TransOutResult: "SUCCESS", - } + req := &TransReq{Amount: 30} msg := dtmcli.NewMsg(DtmServer, dtmcli.MustGenGid(DtmServer)). Add(Busi+"/TransOut", req). Add(Busi+"/TransIn", req) diff --git a/examples/main_xa.go b/examples/main_xa.go index b55450b..9aae0ba 100644 --- a/examples/main_xa.go +++ b/examples/main_xa.go @@ -5,7 +5,6 @@ import ( "strings" "github.com/gin-gonic/gin" - "github.com/sirupsen/logrus" "github.com/yedf/dtm/common" "github.com/yedf/dtm/dtmcli" ) @@ -37,12 +36,22 @@ func dbGet() *common.DB { return common.DbGet(config.Mysql) } -// XaFireRequest 1 +// XaSetup 挂载http的api,创建XaClient +func XaSetup(app *gin.Engine) { + app.POST(BusiAPI+"/TransInXa", common.WrapHandler(xaTransIn)) + app.POST(BusiAPI+"/TransOutXa", common.WrapHandler(xaTransOut)) + config.Mysql["database"] = "dtm_busi" + var err error + XaClient, err = dtmcli.NewXaClient(DtmServer, config.Mysql, app, Busi+"/xa") + e2p(err) +} + +// XaFireRequest 注册全局XA事务,调用XA的分支 func XaFireRequest() string { gid := dtmcli.MustGenGid(DtmServer) err := XaClient.XaGlobalTransaction(gid, func(xa *dtmcli.Xa) (rerr error) { defer common.P2E(&rerr) - req := GenTransReq(30, false, false) + req := &TransReq{Amount: 30} resp, err := xa.CallBranch(req, Busi+"/TransOutXa") common.CheckRestySuccess(resp, err) resp, err = xa.CallBranch(req, Busi+"/TransInXa") @@ -53,16 +62,6 @@ func XaFireRequest() string { return gid } -// XaSetup 1 -func XaSetup(app *gin.Engine) { - app.POST(BusiAPI+"/TransInXa", common.WrapHandler(xaTransIn)) - app.POST(BusiAPI+"/TransOutXa", common.WrapHandler(xaTransOut)) - config.Mysql["database"] = "dtm_busi" - var err error - XaClient, err = dtmcli.NewXaClient(DtmServer, config.Mysql, app, Busi+"/xa") - e2p(err) -} - func xaTransIn(c *gin.Context) (interface{}, error) { err := XaClient.XaLocalTransaction(c, func(db *common.DB, xa *dtmcli.Xa) (rerr error) { req := reqFrom(c) @@ -85,9 +84,7 @@ func xaTransOut(c *gin.Context) (interface{}, error) { if req.TransOutResult != "SUCCESS" { return fmt.Errorf("tranOut failed") } - logrus.Printf("before updating balance") dbr := db.Exec("update user_account set balance=balance-? where user_id=?", req.Amount, 1) - logrus.Printf("after updating balance") return dbr.Error }) e2p(err)