Package de.bsvrz.ars.ars.mgmt
Klasse ArchivConfig
Konfiguration des Archivsystems. Die Klasse ist als Thread implementiert, damit die Anmeldungen nicht im Thread des Datenverteilers (in den Callback-Methoden
des SettingsManager) laufen müssen. Stattdessen wird ein einfacher Ping-Pong-Mechanismus implementiert, mit dem die Parameter abgearbeitet werden, sobald
der EndOfSettingsListener aufgerufen wurde. Das Ende eines Parametrierungszyklus kann durch
createEndOfParamListener() abgewartet werden.
In einem Parametrierungszyklus werden alle An-/Abmeldungen von zu archivierenden Datenidentifikationen und Quittierungs-Datenidentifikationen vorgenommen.
Diese Klasse ist nicht mithilfe von RepeatingTask und RingBuffer implementiert, da sie einen von der Kernsoftware zur Verfuegung
gestellten Mechanismus zur Parameterübernahme verwendet.
-
Verschachtelte Klassen - Übersicht
Verschachtelte KlassenModifizierer und TypKlasseBeschreibungstatic classSpezielle Klasse, mit der man auf das Ende der Übernahme der nächsten Archiveinstellungen warten kann.protected static classMit dieser Klasse wird während der Parameterübernahme in den Callback-Methoden vermerkt für welche Datenidentifikation (=DataIdentNode) was parametriert wurde. -
Feldübersicht
Von Klasse geerbte Felder de.bsvrz.ars.ars.mgmt.tasks.Task
_debug, _shouldTerminate -
Konstruktorübersicht
Konstruktoren -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungErzeugt einen Listener der benachrichtigt wird, wenn ein Parametrierungszyklus durchlaufen ist.longgetPermanentDeleteTimeSeconds(DataIdentNode dataIdentNode) Bestimmt die zusätzliche Vorhaltezeit für das endgültige Löschen für die angegebene Datenidentifikation.voidjoin()Wartet auf das Beenden des Tasks nach der Terminierung.voidprintArchiveParams(File dumpFile) Gibt die Parametrierung auf dem übergebenen Stream aus.voidStartet die Übernahme der Archivparametrierung und meldet die zu archivierenden Datenidentifikation an.voidsetSimConfigQueue(SignalingQueue<de.bsvrz.dav.daf.main.ResultData> queue) voidstartSubscribeArchiveParams(InQueuesMgr iqMgr, DataIdentTree dTree) Initialisiert den Thread und startet durchrestartSubscribeArchiveParams()die Übernahme der Archivparametrierung.voidTerminiert den Task.voidMeldet alle zu archivierenden Daten abvoidMeldet alle Quittierungsaspekte ab.voidBeendet den SettingsManager und meldet die Parametrierung des Archivsystems ab.voidunsubscribeSimVarData(int simVar) Meldet alle zu einer Simulation gehoerenden Daten (= zu archivierende Daten + Quittungen) ab.protected voidVom konkreten Task zu implementierende Methode, die den Auftrag abarbeitet.Von Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.RepeatingTask
execute, getArchMgrVon Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.AbstractTask
addTaskStepListener, cleanUp, getName, getState, isAlive, isTerminated, removeTaskStepListener, setName, start, taskStepDoneVon Klasse geerbte Methoden de.bsvrz.ars.ars.mgmt.tasks.Task
getDidTree, getPersistenceManager, shouldTerminate, suspendTaskIfNecessary
-
Konstruktordetails
-
ArchivConfig
Erstellt einen neuen ArchivConfig.- Parameter:
aMgr- DerArchiveManager
-
-
Methodendetails
-
setSimConfigQueue
-
work
Beschreibung aus Klasse kopiert:QueueTaskVom konkreten Task zu implementierende Methode, die den Auftrag abarbeitet. Diese Methode sollte nur Intern aufgerufen werden, ist für Testfälle aber public. Normalerweise sollten Aufträge aber Asynchron mit submit() übergeben werden- Angegeben von:
workin KlasseQueueTask<ArchivConfig.SubscrMarker>- Parameter:
step- Auftrag/Arbeitsschritt- Löst aus:
InterruptedException- Thread unterbrochen
-
getPermanentDeleteTimeSeconds
Bestimmt die zusätzliche Vorhaltezeit für das endgültige Löschen für die angegebene Datenidentifikation.- Parameter:
dataIdentNode- DataIdentNode der Datenidentifikation- Gibt zurück:
- zusätzliche Vorhaltezeit in Sekunden (> 0). -1 falls nicht endgültig gelöscht werden soll. 0 und andere negative Werte werden nicht zurückgegeben.
-
terminateTask
public void terminateTask()Beschreibung aus Klasse kopiert:QueueTaskTerminiert den Task. Diese Methode fügt zusätzlich in die Queue einen speziellen Token ein, mit dem der Aufruf von_queue.take()in derQueueTask.step()-Methode aufgeweckt wird, falls die Methode dort gerade auf einen neuen Auftrag warten.- Setzt außer Kraft:
terminateTaskin KlasseQueueTask<ArchivConfig.SubscrMarker>
-
join
Beschreibung aus Klasse kopiert:AbstractTaskWartet auf das Beenden des Tasks nach der Terminierung. Beispielcode:task.terminateTask(); // Task soll bei der nächsten Möglichkeit terminieren (asynchroner Aufruf) task.join(); // Auf das terminieren synchron warten- Setzt außer Kraft:
joinin KlasseAbstractTask- Löst aus:
InterruptedException- bei Unterbrechung- Siehe auch:
-
createEndOfParamListener
Erzeugt einen Listener der benachrichtigt wird, wenn ein Parametrierungszyklus durchlaufen ist.- Gibt zurück:
- Listener
-
startSubscribeArchiveParams
Initialisiert den Thread und startet durchrestartSubscribeArchiveParams()die Übernahme der Archivparametrierung.- Parameter:
iqMgr- Empfaenger der DatenanmeldungdTree- Baum, in den die Datenidentifikationen zusammen mit der Parametrierung eingetragen werden
-
restartSubscribeArchiveParams
public void restartSubscribeArchiveParams()Startet die Übernahme der Archivparametrierung und meldet die zu archivierenden Datenidentifikation an. Diese Methode wird auch nach einem Verbindungsabbruch zum DAV aufgerufen. -
unsubscribeArchiveParams
public void unsubscribeArchiveParams()Beendet den SettingsManager und meldet die Parametrierung des Archivsystems ab. -
unsubscribeArchiveData
public void unsubscribeArchiveData()Meldet alle zu archivierenden Daten ab -
unsubscribeSimVarData
public void unsubscribeSimVarData(int simVar) Meldet alle zu einer Simulation gehoerenden Daten (= zu archivierende Daten + Quittungen) ab. Da es nicht auf einfache Weise möglich ist, festzustellen, wann keine Datensätze einer bestimmten SimVar mehr in der Archiv-Queue sind, kann man nicht bis dahin warten, bevor die Quittungen abgemeldet werden. Es kann also sein, dass einige Datensätze der Simulation nicht mehr quittiert werden. -
unsubscribeArchiveDataAck
public void unsubscribeArchiveDataAck()Meldet alle Quittierungsaspekte ab. Dies muss nachunsubscribeArchiveData()geschehen, damit die Datensätze, die noch in der Queue sind, nach der Archivierung quittiert werden können. -
printArchiveParams
Gibt die Parametrierung auf dem übergebenen Stream aus.- Parameter:
dumpFile- Ausgabestream. Falls null, wird auf stdout ausgegeben- Löst aus:
InterruptedException- Thread unterbrochenTimeoutException
-