diff --git a/apigee_sync_test.go b/apigee_sync_test.go
index 3d897d6..6dfb0d4 100644
--- a/apigee_sync_test.go
+++ b/apigee_sync_test.go
@@ -181,10 +181,12 @@
 					Expect(true).To(Equal(numApidClusters.Next()))
 					numApidClusters.Scan(&rowCount)
 					Expect(1).To(Equal(rowCount))
+					numApidClusters.Close()
 					apidClusters, _ := db.Query("select id from edgex_apid_cluster;")
 					apidClusters.Next()
 					apidClusters.Scan(&id)
 					Expect(id).To(Equal(expectedClusterId))
+					apidClusters.Close()
 
 					numDataScopes, _ := db.Query("select distinct count(*) from edgex_data_scope;")
 					Expect(true).To(Equal(numDataScopes.Next()))
diff --git a/changes.go b/changes.go
index 6358307..20e7f6d 100644
--- a/changes.go
+++ b/changes.go
@@ -336,7 +336,7 @@
 	lastSequence = seq
 	err := updateLastSequence(seq)
 	if err != nil {
-		log.Panic("Unable to update Sequence in DB")
+		log.Panicf("Unable to update Sequence in DB. Err {%v}", err)
 	}
 
 }
diff --git a/data.go b/data.go
index 878038d..fd4111c 100644
--- a/data.go
+++ b/data.go
@@ -49,7 +49,12 @@
 (Currently, the snapshot never changes, but this is future-proof)
 */
 func initDB(db apid.DB) error {
-	_, err := db.Exec(`
+	tx, err := db.Begin()
+	if err != nil {
+		log.Errorf("initDB(): Unable to get DB tx err: {%v}", err)
+		return err
+	}
+	_, err = tx.Exec(`
 	CREATE TABLE IF NOT EXISTS APID (
 	    instance_id text,
 	    apid_cluster_id text,
@@ -58,9 +63,16 @@
 	);
 	`)
 	if err != nil {
+		rollbackTxn(tx)
+		log.Errorf("initDB(): Unable to tx exec err: {%v}", err)
 		return err
 	}
-
+	err = tx.Commit()
+	if err != nil {
+		rollbackTxn(tx)
+		log.Errorf("initDB(): tx commit err: {%v}", err)
+		return err
+	}
 	log.Debug("Database tables created.")
 	return nil
 }
@@ -426,18 +438,13 @@
 
 	log.Debugf("updateLastSequence: %s", lastSequence)
 
-	db, err := dataService.DB()
-	if err != nil {
-		log.Errorf("updateLastSequence: Unable to get DB Err: {%v}", err)
-		return err
-	}
-	tx, err := db.Begin()
+	tx, err := getDB().Begin()
 	if err != nil {
 		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)
+	_, err = tx.Exec("UPDATE EDGEX_APID_CLUSTER SET last_sequence=?;", lastSequence)
 	if err != nil {
 		log.Errorf("UPDATE EDGEX_APID_CLUSTER Failed: %v", err)
 		rollbackTxn(tx)
@@ -450,7 +457,6 @@
 		return err
 	}
 	log.Debugf("UPDATE EDGEX_APID_CLUSTER Success: %s", lastSequence)
-	log.Infof("Replication lastSequence=%s", lastSequence)
 	return nil
 }
 
@@ -499,7 +505,7 @@
 			info.InstanceID, info.ClusterID, "")
 		info.LastSnapshot = ""
 	}
-	if err != nil {
+	if err == nil {
 		err = tx.Commit()
 		if err != nil {
 			rollbackTxn(tx)
