Make sure ll updates are in a Txn
diff --git a/data.go b/data.go
index 1fb36b2..878038d 100644
--- a/data.go
+++ b/data.go
@@ -426,19 +426,29 @@
log.Debugf("updateLastSequence: %s", lastSequence)
- stmt, err := getDB().Prepare("UPDATE EDGEX_APID_CLUSTER SET last_sequence=$1;")
+ db, err := dataService.DB()
if err != nil {
- log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
+ log.Errorf("updateLastSequence: Unable to get DB Err: {%v}", err)
return err
}
- defer stmt.Close()
-
- _, err = stmt.Exec(lastSequence)
+ tx, err := db.Begin()
if err != nil {
- log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
+ log.Errorf("getApidInstanceInfo: Unable to get DB tx Err: {%v}", err)
return err
}
+ _, err = tx.Exec("UPDATE EDGEX_APID_CLUSTER SET last_sequence=$1;", lastSequence)
+ if err != nil {
+ log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
+ rollbackTxn(tx)
+ return err
+ }
+ err = tx.Commit()
+ if err != nil {
+ log.Errorf("UPDATE EDGEX_APID_CLUSTER Tx Commit err : %v", err)
+ rollbackTxn(tx)
+ return err
+ }
log.Debugf("UPDATE EDGEX_APID_CLUSTER Success: %s", lastSequence)
log.Infof("Replication lastSequence=%s", lastSequence)
return nil