Merge branch 'master' of github.com:30x/apidApigeeSync into APIRT-4751
diff --git a/listener.go b/listener.go index 9693aa3..d397171 100644 --- a/listener.go +++ b/listener.go
@@ -25,8 +25,16 @@ ) func processSnapshot(snapshot *common.Snapshot) { - log.Debugf("Snapshot received. Switching to DB version: %s", snapshot.SnapshotInfo) + var prevDb string + if apidInfo.LastSnapshot != "" && apidInfo.LastSnapshot != snapshot.SnapshotInfo { + log.Debugf("Release snapshot for {%s}. Switching to version {%s}", + apidInfo.LastSnapshot , snapshot.SnapshotInfo) + prevDb = apidInfo.LastSnapshot + } else { + log.Debugf("Process snapshot for version {%s}", + snapshot.SnapshotInfo) + } db, err := dataService.DBVersion(snapshot.SnapshotInfo) if err != nil { log.Panicf("Unable to access database: %v", err) @@ -44,6 +52,10 @@ setDB(db) log.Debugf("Snapshot processed: %s", snapshot.SnapshotInfo) + // Releases the DB, when the Connection reference count reaches 0. + if prevDb != "" { + dataService.ReleaseDB(prevDb) + } } func processSqliteSnapshot(db apid.DB) {