Bug fixing
+ DB access is now right and uses copied sessions + DB session is now specifying the safe state and the mode + Fixed the issue with too early ICCC messages regarding to late cache + Add the MIME type for Dart + Fixed the issuse with wrong order of shutdown handlers - TODO: Testing of these changes
This commit is contained in:
1 parent
86451938ec
commit
7120a729bd
19 files changed
+85
-48
No files matched your search
+1
-1
@@ -1,4 +1,4 @@
|
||||
/*
|
||||
This is the "[I]nter Data [C]enter Se[c]ure [C]ommunication" :)
|
||||
This is the "[I]nter Data [C]enter and Appli[c]ation [C]ommunication"
|
||||
*/
|
||||
package ICCC
|
||||
@@ -21,5 +21,6 @@ func init() {
|
||||
|
||||
initDB()
|
||||
registerHost2Database()
|
||||
cacheTimerLogic(false)
|
||||
initCacheTimer()
|
||||
}
|
||||
+1
-1
@@ -10,7 +10,7 @@ func initDB() {
|
||||
defer Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameINIT, `Done init the ICCC collection.`)
|
||||
|
||||
// Get the database:
|
||||
db = CustomerDB.DB()
|
||||
dbSession, db = CustomerDB.DB()
|
||||
|
||||
if db == nil {
|
||||
Log.LogFull(senderName, LM.CategorySYSTEM, LM.LevelERROR, LM.SeverityCritical, LM.ImpactCritical, LM.MessageNameDATABASE, `Was not able to get the customer database.`)
|
||||
|
||||
+30
-25
@@ -9,33 +9,38 @@ import "github.com/SommerEngineering/Ocean/Log"
|
||||
import LM "github.com/SommerEngineering/Ocean/Log/Meta"
|
||||
|
||||
func initCacheTimer() {
|
||||
|
||||
go func() {
|
||||
for {
|
||||
|
||||
if Shutdown.IsDown() {
|
||||
return
|
||||
}
|
||||
|
||||
lastCount := cacheListenerDatabase.Len()
|
||||
selection := bson.D{{`IsActive`, true}}
|
||||
entriesIterator := collectionListener.Find(selection).Iter()
|
||||
entry := Scheme.Listener{}
|
||||
|
||||
cacheListenerDatabaseLock.Lock()
|
||||
cacheListenerDatabase.Init()
|
||||
for entriesIterator.Next(&entry) {
|
||||
cacheListenerDatabase.PushBack(entry)
|
||||
}
|
||||
|
||||
cacheListenerDatabaseLock.Unlock()
|
||||
nextDuration := time.Duration(5) * time.Minute
|
||||
if cacheListenerDatabase.Len() == 0 {
|
||||
nextDuration = time.Duration(10) * time.Second
|
||||
}
|
||||
|
||||
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameEXECUTE, `The listener cache was refreshed with the values from the database.`, fmt.Sprintf(`last count=%d`, lastCount), fmt.Sprintf(`new count=%d`, cacheListenerDatabase.Len()))
|
||||
time.Sleep(nextDuration)
|
||||
cacheTimerLogic(true)
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func cacheTimerLogic(waiting bool) {
|
||||
if Shutdown.IsDown() {
|
||||
return
|
||||
}
|
||||
|
||||
lastCount := cacheListenerDatabase.Len()
|
||||
selection := bson.D{{`IsActive`, true}}
|
||||
entriesIterator := collectionListener.Find(selection).Iter()
|
||||
entry := Scheme.Listener{}
|
||||
|
||||
cacheListenerDatabaseLock.Lock()
|
||||
cacheListenerDatabase.Init()
|
||||
for entriesIterator.Next(&entry) {
|
||||
cacheListenerDatabase.PushBack(entry)
|
||||
}
|
||||
|
||||
cacheListenerDatabaseLock.Unlock()
|
||||
Log.LogShort(senderName, LM.CategorySYSTEM, LM.LevelINFO, LM.MessageNameEXECUTE, `The listener cache was refreshed with the values from the database.`, fmt.Sprintf(`last count=%d`, lastCount), fmt.Sprintf(`new count=%d`, cacheListenerDatabase.Len()))
|
||||
|
||||
if waiting {
|
||||
nextDuration := time.Duration(5) * time.Minute
|
||||
if cacheListenerDatabase.Len() == 0 {
|
||||
nextDuration = time.Duration(10) * time.Second
|
||||
}
|
||||
|
||||
time.Sleep(nextDuration)
|
||||
}
|
||||
}
|
||||
@@ -26,5 +26,7 @@ func (a ShutdownFunction) Shutdown() {
|
||||
collectionListener.Update(selectionUpdate, entry)
|
||||
}
|
||||
|
||||
db.Logout()
|
||||
dbSession.Close()
|
||||
Log.LogShort(senderName, LM.CategoryAPP, LM.LevelWARN, LM.MessageNameSHUTDOWN, `Done shutting down now all ICCC listener for this host.`)
|
||||
}
|
||||
@@ -16,6 +16,7 @@ const (
|
||||
var (
|
||||
senderName LM.Sender = `ICCC`
|
||||
db *mgo.Database = nil
|
||||
dbSession *mgo.Session = nil
|
||||
collectionListener *mgo.Collection = nil
|
||||
collectionHosts *mgo.Collection = nil
|
||||
reservedSystemChannels []string = []string{ChannelSYSTEM, ChannelNUMGEN, ChannelSHUTDOWN, ChannelSTARTUP, ChannelICCC}
|
||||
|
||||
Reference in new issue
Block a user