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 classEmpfaengerklasse für Archivdatenfinal classEmpfaengerklasse für Archiveinstellungenfinal classKlasse, die Quittungen sendetclassAbstrakte Klasse, die zum Empfang bestimmter Daten (z.B. von Archiv-Queries) verwendet werden kann.final classEmpfaengerklasse für Archivanfragen -
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungInQueuesMgr(ArchiveManager aMgr, RuntimeControl runtimeControl, DataIdentTree dTree, QueueParameters parameters) Erzeugt den Warteschlangen-Manager. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungvoidarchiveRequestedData(long archiveTime, de.bsvrz.dav.daf.main.archive.ArchiveData ad) Fuegt einen nachgeforderten Datensatz in die entsprechende Queue ein.intZählt die Datensätze in der EingangsqueuelongSchätzt den Speicherverbrauch der Archivqueue abDie KlasseArchivConfigmeldet die zu archivierenden Daten mit dem Objekt als Empfaenger an, das von dieser Methode geliefert wird.intLiefert den Task, der für die Bearbeitung der Archiveinstellungen verantwortlich ist.longDie KlasseArchivConfigmeldet die Quittungen für die zu archivierenden Daten mit dem Objekt als Sender an, das von dieser Methode geliefert wird.longlonglongintintintvoidIn dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, benoetigte Objekte vom DAV zu laden.longlongdoublelonglongGibt die Laufzeitsteuerung zurück, die u.a. die Archivzeiten ermittelt und Test-Verhalten ermöglicht.longlonglongvoidFügt in die Archivqueue einCloseContainerObjectein, das signalisiert, dass der offene Container aufgrund einer Parameterierungsänderung abgeschlossen werden soll.voidinsertInRequestQueue(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Nachfordern-Task einen Auftrag hinzu.voidinsertInSimVarDeleteQueue(de.bsvrz.dav.daf.main.ResultData resultData) Fügt dem Simulationsvarianten-Lösch-Task einen Auftrag hinzu.voidFü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.voidinsertSimVarParam(SimulationResultData resultData) Fügt dem Parametrierungs-Task einen weiteren Auftrag hinzu.voidSetzt alle Zähler auf 0.voidsetFastExit(boolean quickExit) Setzt, ob sich der InQueuesMgr schnell terminieren soll.voidsetQueryTaskNumbers(int numHi, int numMid, int numLo) Setzt die Anzahl der Threads für Archivanfragen auf die angegebenen Werte.voidStartet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks.voidFügt dem Lösch-Task (endgültiges Löschen) einen Auftrag hinzu.voidBeendet alle Tasks (Multi- und Single-Tasks) sowie die Archiv-Tasks.booleansubscribe(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)voidIn dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden.voidIn dieser Methode wird allen Tasks (falls notwendig) die Möglichkeit gegeben, sich auf Objekte anzumelden.voidHält alle lesenden Tasks direkt an, ohne weitere Bedingungen zu prüfen.voidsuspendTaskIfNecessary(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 einCloseContainerObjectein, 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 derArchiveManagerbeim Start einenArchiveSettingsTask.ArSSettingListenereinhä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 KlasseArchivConfigmeldet 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 KlasseArchivConfigmeldet 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
-