func()

in tcc/fence/service/service.go [198:223]


func (T TestTCCServiceBusiness2) Commit(ctx context.Context, businessActionContext *tm.BusinessActionContext) (b bool, err error) {
	db, err := sql.Open(DriverName, Url)
	if err != nil {
		return false, fmt.Errorf("database connect failed, msg :%s", err.Error())
	}
	defer db.Close()
	tx, err := db.Begin()
	if err != nil {
		return false, fmt.Errorf("transaction begin failed, msg :%s", err.Error())
	}

	defer func() {
		if err != nil {
			err = fmt.Errorf("business method throw error: %s, rollback result: %s", err, tx.Rollback())
			return
		}
		b, err = true, tx.Commit()
	}()

	err = fence.WithFence(ctx, tx, func() error {
		log.Infof("TestTCCServiceBusiness2 Commit, param %v", businessActionContext)
		return nil
	})

	return
}