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 TaskManagerInterface
client
- Empfänger an den das Ergebnis der Anfrage gesendet werden sollid
- Id der Anfrageoperation
- Operationscode (gültige Werte sind ProtocolRelatedOperation
data
- 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
- FailureException
private 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
- FailureException
private int generateProtocolId()
public void shutdown()
TaskManagerInterface
shutdown
in interface TaskManagerInterface
TaskManagerInterface.shutdown()
public boolean isTerminated()
true
falls der Taskmanager beendet wurde.public java.lang.Long[] getActiveProtocols()
TaskManagerInterface
getActiveProtocols
in interface TaskManagerInterface
TaskManagerInterface.getActiveProtocols()
public java.util.List<ThreadPool.QueuedThread> getWaitingProtocols()
TaskManagerInterface
getWaitingProtocols
in interface TaskManagerInterface
TaskManagerInterface.getWaitingProtocols()
public ThreadPool getPool()
getPool
in interface TaskManagerInterface