public class TaskManager extends java.lang.Object implements TaskManagerInterface
| Modifier and Type | Field and Description |
|---|---|
private DataManager |
_dataManager
Verbindung zum Submodul Data Manager
|
private ClientDavInterface |
_dav
Verbindung zum Datenverteiler
|
private static Debug |
_debug
Debug - Ausgabe
|
private DataModel |
_model
Verbindung zur Konfiguration
|
private ThreadPool |
_pool
Thread-Pool
|
private java.security.SecureRandom |
random
Random-Objekt zur Erzeugung von Protokoll-Ids.
|
| Constructor and Description |
|---|
TaskManager(ClientDavInterface dav,
DataManager dataManager,
int maxProtocols,
int maxQueries,
long maxDelay,
int timeout,
ConfigurationObject configAuth)
Erzeugt den Task Manager
|
| Modifier and Type | Method and Description |
|---|---|
private void |
abortProtocolCreation(SystemObject client,
long id,
byte[] data)
Bricht die Protokollerstellung ab
|
private void |
createProtocol(SystemObject client,
long id,
byte[] data,
long initialFlowControl)
Startet die Datenaufbereitung.
|
private void |
flowControl(long jobId,
byte[] data)
Automatische Flusskontrolle.
|
private int |
generateProtocolId()
Generiert eine (global) eindeutige Protokoll-Id
|
java.lang.Long[] |
getActiveProtocols()
Liste mit den Protokollen die gerade gesendet / erstellt werden.
|
private void |
getJobList(SystemObject client,
long requestId)
Sendet die Liste der aktuell in Warteschlange und in Bearbeitung befindlichen langfristigen Aufträge an den Auftraggeber.
|
ThreadPool |
getPool() |
private void |
getPuaArsStatus(SystemObject client,
long id)
Sendet den Status des Systems an den Auftraggeber.
|
private void |
getStatus(SystemObject client,
long requestId,
byte[] data)
Sendet den Status der Protokollerstellung an den Auftraggeber.
|
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.
|
private void |
pauseJob(byte[] data)
Hält die Protokollerstellung oder den Protokollabruf an.
|
void |
process(SystemObject client,
long id,
int operation,
byte[] data,
long initialFlowControl)
Übergeben einer Anfrage an das Task Manager Submodul.
|
private void |
resumeJob(byte[] data)
Setzt die Protokollerstellung oder den Protokollabruf fort.
|
private void |
sendSavedProtocol(SystemObject client,
long id,
byte[] data,
long initialFlowControl)
Sendet ein gespeichertes Protokoll an den Auftraggeber.
|
private void |
sendUnreadProtocol(SystemObject client,
long id,
byte[] data,
long initialFlowControl)
Sendet ein gespeichertes Protokoll an den Auftraggeber.
|
void |
shutdown()
Fährt den Task-Manager herunter.
|
private void |
stopProtocolTransmission(SystemObject client,
long id,
byte[] data)
Bricht die übertragung eines Protokolls ab ohne das Speichern des Protokolls abzubrechen
|
private ClientDavInterface _dav
private ThreadPool _pool
private static final Debug _debug
private DataManager _dataManager
private DataModel _model
private final java.security.SecureRandom random
generateProtocolId().public TaskManager(ClientDavInterface dav, DataManager dataManager, int maxProtocols, int maxQueries, long maxDelay, int timeout, ConfigurationObject configAuth) throws FailureException
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.FailureException - Keine Verbindung zum Datenverteiler; Anlegen aller Treads scheitertpublic void process(SystemObject client, long id, int operation, byte[] data, long initialFlowControl)
process in interface TaskManagerInterfaceclient - Empfänger an den das Ergebnis der Anfrage gesendet werden sollid - Id der Anfrageoperation - Operationscode (gültige Werte sind ProtocolRelatedOperationdata - Byte-Feld mit serialisierten AnfragedateninitialFlowControl - private void resumeJob(byte[] data)
data - Anfrageparameterprivate void flowControl(long jobId,
byte[] data)
data - Anfrageparameterprivate void pauseJob(byte[] data)
data - Anfrageparameterprivate void getStatus(SystemObject client, long requestId, byte[] data) throws FailureException
client - AuftraggeberrequestId - Anfrage-Id. Entspricht NICHT der Auftrags-Id. Diese wird im Datenteil der Nachricht mitegliefertdata - Serialisierte Auftrags-Id.FailureException - Fehler beim Senden.private void getJobList(SystemObject client, long requestId) throws FailureException
client - AuftraggeberrequestId - Anfrage-IdFailureException - Fehler beim Senden.private void getPuaArsStatus(SystemObject client, long id) throws FailureException
client - Auftraggeberid - Anfrage-Id.FailureException - Fehler beim Senden.private void abortProtocolCreation(SystemObject client, long id, byte[] data) throws FailureException
id - Anfrage-Id. Entspricht NICHT der Auftrags-Id. Diese wird im Datenteil der Nachricht mitgeliefertdata - Serialisierte Auftrags-Id des zu beendenden Auftrags.FailureException - Fehler beim Senden.private void stopProtocolTransmission(SystemObject client, long id, byte[] data) throws FailureException
id - Anfrage-Id. Entspricht NICHT der Auftrags-Id. Diese wird im Datenteil der Nachricht mitgeliefertdata - Serialisierte Auftrags-Id des zu beendenden Auftrags.FailureException - Fehler beim Senden.private void createProtocol(SystemObject client, long id, byte[] data, long initialFlowControl) throws FailureException
client - Auftraggeber, an den das Ergebnis gesendet wird.id - Anfrage-Id. Ist nicht die Protokoll-Id, sonder eine von der Applikation vergebene Id.data - AnfrageparameterinitialFlowControl - FailureException - Fehler beim Senden.private void sendSavedProtocol(SystemObject client, long id, byte[] data, long initialFlowControl) throws FailureException
client - Auftraggeberid - Anfrage-Id. Ist nicht die Protokoll-Id, sondern eine vom Auftraggeber vergebene Id.initialFlowControl - FailureExceptionprivate void sendUnreadProtocol(SystemObject client, long id, byte[] data, long initialFlowControl) throws FailureException
client - Auftraggeberid - Anfrage-Id. Ist nicht die Protokoll-Id, sondern eine vom Auftraggeber vergebene Id.initialFlowControl - FailureExceptionprivate int generateProtocolId()
public void shutdown()
TaskManagerInterfaceshutdown in interface TaskManagerInterfaceTaskManagerInterface.shutdown()public boolean isTerminated()
true falls der Taskmanager beendet wurde.public java.lang.Long[] getActiveProtocols()
TaskManagerInterfacegetActiveProtocols in interface TaskManagerInterfaceTaskManagerInterface.getActiveProtocols()public java.util.List<ThreadPool.QueuedThread> getWaitingProtocols()
TaskManagerInterfacegetWaitingProtocols in interface TaskManagerInterfaceTaskManagerInterface.getWaitingProtocols()public ThreadPool getPool()
getPool in interface TaskManagerInterface