Package de.bsvrz.ars.ars.mgmt
Klasse InQueuesMgr
java.lang.Object
de.bsvrz.ars.ars.mgmt.InQueuesMgr
Warteschlangen-Manager. Verteilt reinkommende Datentelegramm mit Datensätzen/Archivanfragen/Archiv-Informationsanfragen/
Backup-/Restore-/HeaderRestore-/LZV/Delete-/RequestGap-Aufträgen auf die jeweilige Warteschlange.
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungfinal class
Empfaengerklasse für Archivdatenfinal class
Empfaengerklasse für Archiveinstellungenfinal class
Klasse, die Quittungen sendetclass
Abstrakte Klasse, die zum Empfang bestimmter Daten (z.B. von Archiv-Queries) verwendet werden kann.final class
Empfaengerklasse für Archivanfragen -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungInQueuesMgr
(ArchiveManager aMgr, RuntimeControl runtimeControl, DataIdentTree dTree, QueueParameters parameters) Erzeugt den Warteschlangen-Manager. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoid
archiveRequestedData
(long archiveTime, de.bsvrz.dav.daf.main.archive.ArchiveData ad) Fuegt einen nachgeforderten Datensatz in die entsprechende Queue ein.int
Zählt die Datensätze in der Eingangsqueuelong
Schätzt den Speicherverbrauch der Archivqueue abDie KlasseArchivConfig
meldet die zu archivierenden Daten mit dem Objekt als Empfaenger an, das von dieser Methode geliefert wird.int
Liefert den Task, der für die Bearbeitung der Archiveinstellungen verantwortlich ist.long
Die KlasseArchivConfig
meldet die Quittungen für die zu archivierenden Daten mit dem Objekt als Sender an, das von dieser Methode geliefert wird.long
long
long
int
int
int
void
In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, benoetigte Objekte vom DAV zu laden.long
long
double
long
long
Gibt die Laufzeitsteuerung zurück, die u.a. die Archivzeiten ermittelt und Test-Verhalten ermöglicht.long
long
long
void
Fügt in die Archivqueue einCloseContainerObject
ein, das signalisiert, dass der offene Container aufgrund einer Parameterierungsänderung abgeschlossen werden soll.void
insertInRequestQueue
(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Nachfordern-Task einen Auftrag hinzu.void
insertInSimVarDeleteQueue
(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Simulationsvarianten-Lösch-Task einen Auftrag hinzu.void
Fügt in die Archivqueue einen Benachrichtigungstoken ein, der bei seiner "Archivierung" signalisiert, dass alle (zuvor in die Queue eingefügten) nachgeforderten Datensätze archiviert wurden.void
insertSimVarParam
(SimulationResultData resultData) Fügt dem Parametrierungs-Task einen weiteren Auftrag hinzu.void
Setzt alle Zähler auf 0.void
setFastExit
(boolean quickExit) Setzt, ob sich der InQueuesMgr schnell terminieren soll.void
setQueryTaskNumbers
(int numHi, int numMid, int numLo) Setzt die Anzahl der Threads für Archivanfragen auf die angegebenen Werte.void
Startet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks.void
Fügt dem Lösch-Task (endgültiges Löschen) einen Auftrag hinzu.void
Beendet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks.boolean
subscribe
(de.bsvrz.dav.daf.main.ClientDavInterface davCon, de.bsvrz.dav.daf.main.config.SystemObject so, de.bsvrz.dav.daf.main.DataDescription dataDescription) Anmelden mit Verzögerung (Sliding-Window-Mechanismus)void
In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden.void
In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden.void
Hält alle lesenden Tasks direkt an, ohne weitere Bedingungen zu prüfen.void
suspendTaskIfNecessary
(Task task) Prüft ob Tasks temporaer blockiert werden sollen und blockiert ggf. den aufrufenden Task.
-
Konstruktordetails
-
InQueuesMgr
public InQueuesMgr(ArchiveManager aMgr, RuntimeControl runtimeControl, DataIdentTree dTree, QueueParameters parameters) Erzeugt den Warteschlangen-Manager.- Parameter:
aMgr
- Archiv-ManagerruntimeControl
- Laufzeitumgebung um z.B. die Systemzeit abzufragen oder Spezialcode für Tests zu aktivierendTree
- DataIdentTreeparameters
- Queue-Einstellungen
-
-
Methodendetails
-
subscribe
public boolean subscribe(de.bsvrz.dav.daf.main.ClientDavInterface davCon, de.bsvrz.dav.daf.main.config.SystemObject so, de.bsvrz.dav.daf.main.DataDescription dataDescription) throws InterruptedException Anmelden mit Verzögerung (Sliding-Window-Mechanismus)- Parameter:
davCon
- Datenverteilerverbindungso
- ObjektdataDescription
- DataDescription- Gibt zurück:
- true wenn die Anmeldung durchgeführt werden konnte, sonst false (z.B. bei Anmeldung eines Empfängers auf Senke-Aspekt)
- Löst aus:
InterruptedException
- Beim Warten unterbrochen
-
setQueryTaskNumbers
public void setQueryTaskNumbers(int numHi, int numMid, int numLo) Setzt die Anzahl der Threads für Archivanfragen auf die angegebenen Werte. Falls Threads entfernt werden, werden noch behandelte Anfragen zuende bearbeitet.- Parameter:
numHi
- Anzahl Tasks der Prioritaet "hoch"numMid
- Anzahl Tasks der Prioritaet "mittel"numLo
- Anzahl Tasks der Prioritaet "niedrig"
-
getHiQueryTaskNum
public int getHiQueryTaskNum() -
getMidQueryTaskNum
public int getMidQueryTaskNum() -
getLoQueryTaskNum
public int getLoQueryTaskNum() -
suspendTaskIfNecessary
Prüft ob Tasks temporaer blockiert werden sollen und blockiert ggf. den aufrufenden Task.Diese Methode und
suspendNonWriteTasks()
verwenden eine reduzierte Synchronisierung, um die Zahl der durchlaufenen synchronized-Bloecke gering zu halten.Diese Methode darf nur ausgeführt werden, wenn der task nicht auf eine Datenidentifikation synchronisiert ist (Deadlock-Gefahr)
- Parameter:
task
- Anzuhaltender Task- Löst aus:
InterruptedException
- Thread unterbrochen
-
suspendNonWriteTasksDirect
public void suspendNonWriteTasksDirect()Hält alle lesenden Tasks direkt an, ohne weitere Bedingungen zu prüfen. -
getObjectsFromDav
public void getObjectsFromDav()In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, benoetigte Objekte vom DAV zu laden. -
subscribeSettings
public void subscribeSettings()In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden. Abmelden geschieht zentral über denConnectionManager
. -
subscribeQueries
public void subscribeQueries()In dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden. Abmelden geschieht zentral über denConnectionManager
. -
startAllTasks
public void startAllTasks()Startet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks. -
stopAllTasks
Beendet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks.- Löst aus:
InterruptedException
- Thread unterbrochen
-
archiveRequestedData
public void archiveRequestedData(long archiveTime, de.bsvrz.dav.daf.main.archive.ArchiveData ad) Fuegt einen nachgeforderten Datensatz in die entsprechende Queue ein.- Parameter:
archiveTime
- Archivzeitad
- Datensatz
-
insertInSimVarDeleteQueue
public void insertInSimVarDeleteQueue(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Simulationsvarianten-Lösch-Task einen Auftrag hinzu.- Parameter:
resultData
- Auftrag.
-
insertSimVarParam
Fügt dem Parametrierungs-Task einen weiteren Auftrag hinzu.- Parameter:
resultData
- Auftrag. Enthält Informationen, auf welche Datenidentifikationen sich das Archivsystem anmelden soll.
-
startDeletePermanently
public void startDeletePermanently()Fügt dem Lösch-Task (endgültiges Löschen) einen Auftrag hinzu. -
insertInRequestQueue
public void insertInRequestQueue(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Nachfordern-Task einen Auftrag hinzu.- Parameter:
resultData
- Auftrag.
-
insertCloseContainer
Fügt in die Archivqueue einCloseContainerObject
ein, das signalisiert, dass der offene Container aufgrund einer Parameterierungsänderung abgeschlossen werden soll.- Parameter:
cco
-CloseContainerObject
-
getArchiveQueueCapacity
public int getArchiveQueueCapacity()- Gibt zurück:
- Gesamtkapazität der Archiv-Warteschlange
-
getQueueLoad
public double getQueueLoad()- Gibt zurück:
- Auslastungsgrad der Warteschlange. Anhand dieses Wertes wird ermittelt, ob die Bearbeitung nicht schreibender Tasks ausgesetzt wird.
-
countDataInQueues
public int countDataInQueues()Zählt die Datensätze in der Eingangsqueue- Gibt zurück:
- Anzahl Datensätze
-
resetDSCounter
public void resetDSCounter()Setzt alle Zähler auf 0. -
getArchiveSettingsTask
Liefert den Task, der für die Bearbeitung der Archiveinstellungen verantwortlich ist. Dies ist notwendig, damit derArchiveManager
beim Start einenArchiveSettingsTask.ArSSettingListener
einhängen und darauf warten kann, dass die Bearbeitung der Archiveinstellungen abgeschlossen ist. Das Archivsystem wartet beim Start auf die Archiv-Einstellungen, da es nicht sinnvoll ist, die ersten Sekunden mit Default-Werten loszulaufen.- Gibt zurück:
- Den Task, der für die Bearbeitung der Archiveinstellungen verantwortlich ist.
-
getArchiveDataReceiver
Die KlasseArchivConfig
meldet die zu archivierenden Daten mit dem Objekt als Empfaenger an, das von dieser Methode geliefert wird.- Gibt zurück:
- Empfaengerobjekt für zu archivierende Daten.
-
getDataAckSender
Die KlasseArchivConfig
meldet die Quittungen für die zu archivierenden Daten mit dem Objekt als Sender an, das von dieser Methode geliefert wird.- Gibt zurück:
- Senderobjekt für die Quittungen der zu archivierenden Daten.
-
setFastExit
public void setFastExit(boolean quickExit) Setzt, ob sich der InQueuesMgr schnell terminieren soll. Bei einer schnellen Terminierung wird nicht auf die Abarbeitugn aller Queues gewartet.- Parameter:
quickExit
- true wenn schnell terminiert werden soll, sonst false
-
getDeletePermanentlyTask
-
getArchiveTask
-
insertRequestedDataFinishedNotification
public void insertRequestedDataFinishedNotification()Fügt in die Archivqueue einen Benachrichtigungstoken ein, der bei seiner "Archivierung" signalisiert, dass alle (zuvor in die Queue eingefügten) nachgeforderten Datensätze archiviert wurden. -
estimateQueueMemoryUsage
public long estimateQueueMemoryUsage()Schätzt den Speicherverbrauch der Archivqueue ab- Gibt zurück:
- Archivqueue
-
getBackgroundTaskManager
-
getReceivedCountOnline
public long getReceivedCountOnline()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
vongetArchiveDataReceiver()
empfangenen Datensätze, egal ob diese archiviert werden oder nicht. Kann zur Test-Synchronisation verwendet werden.
-
getQueuedCountTotal
public long getQueuedCountTotal()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Datensätze, die in eine Queue eingefügt wurden.
-
getQueuedCountOnline
public long getQueuedCountOnline()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Online-Datensätze, die in eine Queue eingefügt wurden.
-
getQueuesCountRequested
public long getQueuesCountRequested()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
nachgeforderten Datensätze, die in eine Queue eingefügt wurden.
-
getFailedCountTotal
public long getFailedCountTotal()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Datensätze, die nicht erfolgreich archiviert wurden
-
getSuccessCountTotal
public long getSuccessCountTotal()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Datensätze, die erfolgreich archiviert wurden
-
getFailedCountOnline
public long getFailedCountOnline()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Online-Datensätze, die nicht erfolgreich archiviert wurden
-
getSuccessCountOnline
public long getSuccessCountOnline()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
Online-Datensätze, die erfolgreich archiviert wurden
-
getFailedCountRequested
public long getFailedCountRequested()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
nachgeforderten Datensätze, die nicht erfolgreich archiviert wurden
-
getSuccessCountRequested
public long getSuccessCountRequested()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
nachgeforderten Datensätze, die erfolgreich archiviert wurden
-
getCloseContainerSuccess
public long getCloseContainerSuccess()- Gibt zurück:
- Zahl aller seit dem Start oder letzten
resetDSCounter()
erfolgreich verarbeiteten Close-Container-Datensätze. Kann zur Test-Synchronisation verwendet werden.
-
getRuntimeControl
Gibt die Laufzeitsteuerung zurück, die u.a. die Archivzeiten ermittelt und Test-Verhalten ermöglicht.- Gibt zurück:
- RuntimeControl
-