Class TaskManager
- java.lang.Object
-
- de.bsvrz.pua.prot.manager.taskmanager.TaskManager
-
- All Implemented Interfaces:
TaskManagerInterface
public class TaskManager extends java.lang.Object implements TaskManagerInterface
Hauptklasse des Task Manager Submodul. Diese Klasse nimmt Anfragen vom Manager Submodul entgegen. Ist es eine Anfrage zur Protokollerstellung, so wird diese einem untätigen Thread zugeordnet. Alle anderen Anfragen werden an den jeweils zuständigen Thread geleitet.
-
-
Constructor Summary
Constructors Constructor Description TaskManager(de.bsvrz.dav.daf.main.ClientDavInterface dav, DataManager dataManager, int maxProtocols, int maxQueries, long maxDelay, int timeout, de.bsvrz.dav.daf.main.config.ConfigurationObject configAuth)
Erzeugt den Task Manager
-
Method Summary
Modifier and Type Method Description java.lang.Long[]
getActiveProtocols()
Liste mit den Protokollen die gerade gesendet / erstellt werden.ThreadPool
getPool()
java.util.List<ThreadPool.QueuedThread>
getWaitingProtocols()
Liste mit den Anfrage-Ids und zugehörigen Protokoll-Ids, die momentan in der Warteschlange liegen.boolean
isTerminated()
Zeigt an ob der Taskmanager und alle Subthreads beendet wurden.void
process(de.bsvrz.dav.daf.main.config.SystemObject client, long id, int operation, byte[] data, long initialFlowControl)
Übergeben einer Anfrage an das Task Manager Submodul.void
shutdown()
Fährt den Task-Manager herunter.
-
-
-
Constructor Detail
-
TaskManager
public TaskManager(de.bsvrz.dav.daf.main.ClientDavInterface dav, DataManager dataManager, int maxProtocols, int maxQueries, long maxDelay, int timeout, de.bsvrz.dav.daf.main.config.ConfigurationObject configAuth) throws de.bsvrz.sys.funclib.losb.exceptions.FailureException
Erzeugt den Task Manager- Parameters:
dav
- Verbindung zum DatenverteilerdataManager
- Daten ManagermaxProtocols
- Maximale Anzahl von Threads die gleichzeitig ausgeführt werden dürfen.maxQueries
- Maximale Größe der Warteschlange für Anufträge zur Protokollerstellung.maxDelay
- Maximale Zeitdauer in ms, für die die Protokollerstellung angehalten werden kann.timeout
- Anzahl Minuten ohne Antwort vom Client, nach der die Übertragung getrennt wirdconfigAuth
- Konfigurationsverantwortlicher für Anfragen an das Archivsystem.- Throws:
de.bsvrz.sys.funclib.losb.exceptions.FailureException
- Keine Verbindung zum Datenverteiler; Anlegen aller Treads scheitert
-
-
Method Detail
-
process
public void process(de.bsvrz.dav.daf.main.config.SystemObject client, long id, int operation, byte[] data, long initialFlowControl)
Übergeben einer Anfrage an das Task Manager Submodul. Nun werden folgende Schritte durchgeführt:
1. Feststellen, welche Operation durchgeführt werden soll
2. Entpacken der Nutzdaten (aus data)
3. Ausführen des Auftrages.- Specified by:
process
in interfaceTaskManagerInterface
- Parameters:
client
- Empfänger an den das Ergebnis der Anfrage gesendet werden sollid
- Id der Anfrageoperation
- Operationscode (gültige Werte sindProtocolRelatedOperation
data
- Byte-Feld mit serialisierten AnfragedateninitialFlowControl
- InitialFlowControl
-
shutdown
public void shutdown()
Description copied from interface:TaskManagerInterface
Fährt den Task-Manager herunter.- Specified by:
shutdown
in interfaceTaskManagerInterface
- See Also:
TaskManagerInterface.shutdown()
-
isTerminated
public boolean isTerminated()
Zeigt an ob der Taskmanager und alle Subthreads beendet wurden.- Returns:
true
falls der Taskmanager beendet wurde.
-
getActiveProtocols
public java.lang.Long[] getActiveProtocols()
Description copied from interface:TaskManagerInterface
Liste mit den Protokollen die gerade gesendet / erstellt werden.- Specified by:
getActiveProtocols
in interfaceTaskManagerInterface
- Returns:
- Liste mit Protokollen. Falls keine Protokolle erstellt werden, wird ein Feld der Länge 0 zurückgegeben.
- See Also:
TaskManagerInterface.getActiveProtocols()
-
getWaitingProtocols
public java.util.List<ThreadPool.QueuedThread> getWaitingProtocols()
Description copied from interface:TaskManagerInterface
Liste mit den Anfrage-Ids und zugehörigen Protokoll-Ids, die momentan in der Warteschlange liegen. Falls keine Anfragen vorliegen, wird ein Feld der Länge 0 zurückgegeben.- Specified by:
getWaitingProtocols
in interfaceTaskManagerInterface
- Returns:
- Liste
- See Also:
TaskManagerInterface.getWaitingProtocols()
-
getPool
public ThreadPool getPool()
- Specified by:
getPool
in interfaceTaskManagerInterface
-
-