public class ThreadPool
extends java.lang.Object
ThreadElement
Objekten. Diese Threads werden über die Protokoll-Id
identifiziert. ThreadPool führt eine Liste mi ThreadGroup
kann nicht verwendet werden, da die Anzahl der Threads nicht eingestellt werden
kann. Außerdem führt ThreadPool eine Liste mit ausstehenden Aufträgen, die auf einen frei werdenen Thread verteilt werden.Modifier and Type | Class and Description |
---|---|
static class |
ThreadPool.QueuedThread
Speichert einen Auftrag in der Warteschlange für externe Zwecke
|
Constructor and Description |
---|
ThreadPool(ClientDavInterface dav,
int maxProtocols,
DataManagerInterface dataManager,
int maxQueries,
long maxDelay,
int timeout,
ConfigurationObject configAuth)
Erzeugt den ThreadPool.
|
Modifier and Type | Method and Description |
---|---|
ThreadPool.QueuedThread |
abortQueuedTask(long jobId)
Bricht einen Auftrag in Warteschlange ab
|
int |
alive() |
boolean |
busy()
Zeigt an ob weitere Anfragen angenommen werden können.
|
java.lang.Long[] |
getActiveProtocols()
Liste mit den Protokollen die gerade gesendet / erstellt werden.
|
ConfigurationObject |
getConfigAuth() |
java.util.ArrayList<JobInProgress> |
getJobList()
Gibt eine Liste mit allen aktuell wartenden und in Bearbeitung befindlichen Aufträgen zurück
|
ThreadElement |
getThread(long jobId)
Liefert den aktiven Thread mit der gegebenen Auftrags-Id zurück.
|
java.util.ArrayList<ThreadElement> |
getThreads()
Gibt alle aktiven Threads zurück
|
java.util.List<ThreadPool.QueuedThread> |
getWaitingProtocols()
Liste mit den Objekten, die momentan in der Warteschlange liegen.Falls keine werte vorliegen, wird ein Feld der Länge 0
zurückgegeben.
|
boolean |
isTerminated()
Zeigt an ob alle Threads beendet wurden.
|
void |
killAll()
Bricht alle Aufträge ab und beendet alle Threads.
|
boolean |
storeCreateQuery(long requestId,
ProcessingParameter pp,
SystemObject client,
long protocolId,
long initialFlowControl)
Legt einen Auftrag zur Protokollerstellung in der Warteschlange ab.
|
boolean |
storeGetProtocolQuery(long requestId,
SystemObject client,
long protocolId,
long initialFlowControl)
Legt einen Auftrag zum ausgeben eines gespeicherten Protokolls in der Warteschlange ab.
|
boolean |
storeGetUnreadProtocolQuery(long requestId,
SystemObject client,
long protocolId,
long initialFlowControl)
Legt einen Auftrag zum ausgeben eines noch nicht abgelegten Protokolls in der Warteschlange ab.
|
public ThreadPool(ClientDavInterface dav, int maxProtocols, DataManagerInterface dataManager, int maxQueries, long maxDelay, int timeout, ConfigurationObject configAuth) throws FailureException
dav
- maxProtocols
- Anzahl der Threads die gleichzeitig laufen dürfendataManager
- Datenmanager. Ermöglicht das Interpretieren des Skripts.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; Erzeugen aller Threads scheitert.public boolean busy()
true
falls die Warteschlange bereits voll ist. false
sonst.public void killAll()
isTerminated()
überprüft werden, ob die Threads beendet wurden.public int alive()
public ConfigurationObject getConfigAuth()
public boolean storeCreateQuery(long requestId, ProcessingParameter pp, SystemObject client, long protocolId, long initialFlowControl) throws FailureException
requestId
- Anfrage-Id. Id, die die anfragende Applikation vergeben hat.pp
- Auftragsparameterclient
- Auftraggeber, an den das Ergebnis gesendet wird.protocolId
- Protokoll-IdinitialFlowControl
- true
falls der Auftrag angenommen wurde.FailureException
- Fehler beim Senden.public boolean storeGetProtocolQuery(long requestId, SystemObject client, long protocolId, long initialFlowControl) throws FailureException
requestId
- Anfrage-Id. Id, die die anfragende Applikation vergeben hat.client
- Auftraggeber, an den das Ergebnis gesendet wird.protocolId
- Protokoll-Id des Protokolls, das abgerufen werden soll.initialFlowControl
- true
falls der Auftrag angenommen wurde.FailureException
- Fehler beim Senden.public boolean storeGetUnreadProtocolQuery(long requestId, SystemObject client, long protocolId, long initialFlowControl) throws FailureException
requestId
- Anfrage-Id. Id, die die anfragende Applikation vergeben hat.client
- Auftraggeber, an den das Ergebnis gesendet wird.protocolId
- Protokoll-Id des Protokolls, das abgerufen werden soll.initialFlowControl
- true
falls der Auftrag angenommen wurde.FailureException
- Fehler beim Senden.public ThreadPool.QueuedThread abortQueuedTask(long jobId)
jobId
- Auftrags-Id des gesuchten Threadspublic java.util.ArrayList<JobInProgress> getJobList() throws FailureException
FailureException
public java.lang.Long[] getActiveProtocols()
public java.util.List<ThreadPool.QueuedThread> getWaitingProtocols()
public ThreadElement getThread(long jobId)
jobId
- Auftrags-Id des gesuchten Threadspublic java.util.ArrayList<ThreadElement> getThreads()
public boolean isTerminated()
true
falls alle Threads beendet wurden.