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.ThreadPoolgetPool()java.util.List<ThreadPool.QueuedThread>getWaitingProtocols()Liste mit den Anfrage-Ids und zugehörigen Protokoll-Ids, die momentan in der Warteschlange liegen.booleanisTerminated()Zeigt an ob der Taskmanager und alle Subthreads beendet wurden.voidprocess(de.bsvrz.dav.daf.main.config.SystemObject client, long id, int operation, byte[] data, long initialFlowControl)Übergeben einer Anfrage an das Task Manager Submodul.voidshutdown()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.FailureExceptionErzeugt 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:
processin interfaceTaskManagerInterface- Parameters:
client- Empfänger an den das Ergebnis der Anfrage gesendet werden sollid- Id der Anfrageoperation- Operationscode (gültige Werte sindProtocolRelatedOperationdata- Byte-Feld mit serialisierten AnfragedateninitialFlowControl- InitialFlowControl
-
shutdown
public void shutdown()
Description copied from interface:TaskManagerInterfaceFährt den Task-Manager herunter.- Specified by:
shutdownin interfaceTaskManagerInterface- See Also:
TaskManagerInterface.shutdown()
-
isTerminated
public boolean isTerminated()
Zeigt an ob der Taskmanager und alle Subthreads beendet wurden.- Returns:
truefalls der Taskmanager beendet wurde.
-
getActiveProtocols
public java.lang.Long[] getActiveProtocols()
Description copied from interface:TaskManagerInterfaceListe mit den Protokollen die gerade gesendet / erstellt werden.- Specified by:
getActiveProtocolsin 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:TaskManagerInterfaceListe 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:
getWaitingProtocolsin interfaceTaskManagerInterface- Returns:
- Liste
- See Also:
TaskManagerInterface.getWaitingProtocols()
-
getPool
public ThreadPool getPool()
- Specified by:
getPoolin interfaceTaskManagerInterface
-
-