Class 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.
      ThreadPool getPool()  
      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.
      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.
      void shutdown()
      Fährt den Task-Manager herunter.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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.FailureException
        Erzeugt den Task Manager
        Parameters:
        dav - Verbindung zum Datenverteiler
        dataManager - Daten Manager
        maxProtocols - 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 wird
        configAuth - 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:
        process in interface TaskManagerInterface
        Parameters:
        client - Empfänger an den das Ergebnis der Anfrage gesendet werden soll
        id - Id der Anfrage
        operation - Operationscode (gültige Werte sind ProtocolRelatedOperation
        data - Byte-Feld mit serialisierten Anfragedaten
        initialFlowControl - InitialFlowControl
      • isTerminated

        public boolean isTerminated()
        Zeigt an ob der Taskmanager und alle Subthreads beendet wurden.
        Returns:
        true falls der Taskmanager beendet wurde.