de.bsvrz.pua.prot.manager.taskmanager
Class ThreadPool

java.lang.Object
  extended by de.bsvrz.pua.prot.manager.taskmanager.ThreadPool

public class ThreadPool
extends java.lang.Object

Verwaltet eine feste Anzahl von 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.

Version:
$Revision: 1.2 $ / $Date: 2008/01/22 16:55:49 $ / ($Author: yvonnes $)
Author:
beck et al. projects GmbH, Martin Hilgers

Constructor Summary
ThreadPool(ClientDavInterface dav, int maxProtocols, DataManagerInterface dataManager, int maxQueries, long maxDelay, ConfigurationObject configAuth)
          Erzeugt den ThreadPool.
 
Method Summary
 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 getCofigAuth()
           
 ThreadElement getThread(long protocolId)
          Liefert den aktiven Thread mit der gegebenen Protokoll-Id zurück.
 java.lang.Long[][] getWaitingProtocols()
          Liste mit den Anfrage-Ids und zugehörigen Protokoll-Ids, 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)
          Legt einen Auftrag zur Protokollerstellung in der Warteschlange ab.
 boolean storeGetProtocolQuery(long requestId, SystemObject client, long protocolId)
          Legt einen Auftrag zum ausgeben eines gespeicherten Protokolls in der Warteschlange ab.
 boolean storeGetUnreadProtocolQuery(long requestId, SystemObject client, long protocolId)
          Legt einen Auftrag zum ausgeben eines noch nicht abgelegten Protokolls in der Warteschlange ab.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreadPool

public ThreadPool(ClientDavInterface dav,
                  int maxProtocols,
                  DataManagerInterface dataManager,
                  int maxQueries,
                  long maxDelay,
                  ConfigurationObject configAuth)
           throws FailureException
Erzeugt den ThreadPool. Es werden sofort alle Threads erzeugt. Es wird solange gewartet, bis alle Threads gestartet wurden.

Parameters:
dav -
maxProtocols - Anzahl der Threads die gleichzeitig laufen dürfen
dataManager - 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.
configAuth - Konfigurationsverantwortlicher für Anfragen an das Archivsystem.
Throws:
FailureException - Keine Verbindung zum Datenverteiler; Erzeugen aller Threads scheitert.
Method Detail

busy

public boolean busy()
Zeigt an ob weitere Anfragen angenommen werden können. Dazu wird überprüft, ob die Warteschlange für eingehende Anfragen gefüllt ist und die Threads alle beschäftigt sind.

Returns:
true falls die Warteschlange bereits voll ist. false sonst.

killAll

public void killAll()
Bricht alle Aufträge ab und beendet alle Threads. Anschließend kann mit isTerminated() überprüft werden, ob die Threads beendet wurden.


alive

public int alive()
Returns:
Anzahl der aktiven und inaktiven Threads.

getCofigAuth

public ConfigurationObject getCofigAuth()
Returns:
Returns the cofigAuth.

storeCreateQuery

public boolean storeCreateQuery(long requestId,
                                ProcessingParameter pp,
                                SystemObject client,
                                long protocolId)
                         throws FailureException
Legt einen Auftrag zur Protokollerstellung in der Warteschlange ab.

Parameters:
requestId - Anfrage-Id. Id, die die anfragende Applikation vergeben hat.
pp - Auftragsparameter
client - Auftraggeber, an den das Ergebnis gesendet wird.
protocolId - Protokoll-Id
Returns:
true falls der Auftrag angenommen wurde.
Throws:
FailureException - Fehler beim Senden.

storeGetProtocolQuery

public boolean storeGetProtocolQuery(long requestId,
                                     SystemObject client,
                                     long protocolId)
                              throws FailureException
Legt einen Auftrag zum ausgeben eines gespeicherten Protokolls in der Warteschlange ab.

Parameters:
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.
Returns:
true falls der Auftrag angenommen wurde.
Throws:
FailureException - Fehler beim Senden.

storeGetUnreadProtocolQuery

public boolean storeGetUnreadProtocolQuery(long requestId,
                                           SystemObject client,
                                           long protocolId)
                                    throws FailureException
Legt einen Auftrag zum ausgeben eines noch nicht abgelegten Protokolls in der Warteschlange ab.

Parameters:
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.
Returns:
true falls der Auftrag angenommen wurde.
Throws:
FailureException - Fehler beim Senden.

getActiveProtocols

public java.lang.Long[] getActiveProtocols()
Liste mit den Protokollen die gerade gesendet / erstellt werden.

Returns:
Liste mit Protokollen. Falls keine Protokolle erstellt werden, wird ein Feld der Länge 0 zurückgegeben.

getWaitingProtocols

public java.lang.Long[][] getWaitingProtocols()
Liste mit den Anfrage-Ids und zugehörigen Protokoll-Ids, die momentan in der Warteschlange liegen.Falls keine werte vorliegen, wird ein Feld der Länge 0 zurückgegeben.

Returns:
Liste mit Feld der Länger 2 mit Anfrage-Id [x][0] und Protokoll-Ids [x][1].

getThread

public ThreadElement getThread(long protocolId)
Liefert den aktiven Thread mit der gegebenen Protokoll-Id zurück.

Parameters:
protocolId - Protokoll-Id des gesuchten Threads
Returns:
Thread mit der gegebenen Protokoll-Id oder null, falls es keinen Thread mit der gegebenen Protokoll-Id gibt.

isTerminated

public boolean isTerminated()
Zeigt an ob alle Threads beendet wurden.

Returns:
true falls alle Threads beendet wurden.


Copyright © 2005-2008 beck et al. projects GmbH All Rights Reserved.