Class DirectPool


  • public class DirectPool
    extends java.lang.Object

    Überschrift: DirectPool.

    Beschreibung: Objekt für die direkten ELOas Regeln.

    Copyright: Copyright (c) ELO Digital Office GmbH 2018

    • Constructor Summary

      Constructors 
      Constructor Description
      DirectPool()
      Führt einen Pool von WorkingSet Objekten für Direct Rulesets.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int availableCount()
      Meldet zurück, wie viele Direct Threads in Wartestellung sind.
      void checkin​(WorkingSet ws)
      Gibt einen WorkingSet an den Pool zurück.
      WorkingSet checkout()
      Holt den nächsten freien WorkingSet aus dem Pool.
      IXconnect getIxConnect()
      Liefert die Index Server Verbindung zurück.
      java.lang.String getLastError​(int rulesetId)
      Ermittelt die letzte Fehlermeldung.
      int getTotal​(int rulesetId)
      Summiert die Gesamtzahl der Durchläufe eines Rulesets aus allen aktiven und passiven WorkingSets des Pools.
      boolean hasRule​(java.lang.String ruleName)
      Meldet zurück, ob der angegebene Regelname vorhanden ist.
      void init​(WebAppContextParam webAppContextParam, ELOasParams param)
      Initialisiert den Pool, erzeugt eine Indexserververbindung und löscht die aktiven bzw. pausierenden Rulesets.
      int inUseCount()
      Meldet zurück, wie viele Direct Threads aktiv sind.
      boolean isEmpty()
      Meldet, ob der Pool aktive oder passive WorkingSets enthält.
      boolean isExpanding()
      Meldet zurück, ob gerade neue Rulesets geladen werden.
      void reloadAllRulesets()
      Lädt alle Rulesets in allen WorkingSets neu.
      void reloadSingleRuleset​(int rulesetId)
      Lädt einen Ruleset in allen aktiven und passiven WorkingSets neu.
      void setAvailableWorkingSets​(java.util.LinkedList<WorkingSet> availWorkingSets)
      Setzt die Liste mit den verfügbaren WorkingSets.
      void stop()
      Ruft die stop Methode für alle aktiven und pausierenden Rulesets des Pools auf.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DirectPool

        public DirectPool()
        Führt einen Pool von WorkingSet Objekten für Direct Rulesets. Jedes Objekt darf zu einem Zeitpunkt nur von einem Thread verwendet werden, dazu wird des per checkout abgeholt. Nach Abschluss der Ausführung wird es dann per checkin in den Pool zurückgegeben.
    • Method Detail

      • isExpanding

        public boolean isExpanding()
        Meldet zurück, ob gerade neue Rulesets geladen werden.
        Returns:
        Rulesets werden geladen
      • init

        public void init​(WebAppContextParam webAppContextParam,
                         ELOasParams param)
                  throws java.rmi.RemoteException
        Initialisiert den Pool, erzeugt eine Indexserververbindung und löscht die aktiven bzw. pausierenden Rulesets.
        Parameters:
        webAppContextParam - Daten aus der config.xml Datei
        param - Vorbereitete Parameter zur IX Url und Anmeldung
        Throws:
        java.rmi.RemoteException
      • stop

        public void stop()
        Ruft die stop Methode für alle aktiven und pausierenden Rulesets des Pools auf. Diese bewirkt, dass die JavaScript Libraries Schleifendurchläufe zum nächsten möglichen Termin abbrechen und die Bearbeitung beenden.
      • getTotal

        public int getTotal​(int rulesetId)
        Summiert die Gesamtzahl der Durchläufe eines Rulesets aus allen aktiven und passiven WorkingSets des Pools.
        Parameters:
        rulesetId - Nummer des Rulesets
        Returns:
        Anzahl der Ausführungen
      • getLastError

        public java.lang.String getLastError​(int rulesetId)
        Ermittelt die letzte Fehlermeldung. Wenn es in mehreren Threads Fehler gibt, wird die zuerst gefundene Meldung zurückgeliefert.
        Parameters:
        rulesetId - Ruleset ID
        Returns:
        letzte Fehlermeldung
      • isEmpty

        public boolean isEmpty()
        Meldet, ob der Pool aktive oder passive WorkingSets enthält.
        Returns:
        Pool ist leer
      • inUseCount

        public int inUseCount()
        Meldet zurück, wie viele Direct Threads aktiv sind.
        Returns:
        Anzahl der aktiven Direct Threads
      • availableCount

        public int availableCount()
        Meldet zurück, wie viele Direct Threads in Wartestellung sind.
        Returns:
        Anzahl der wartenden Direct Threads
      • reloadSingleRuleset

        public void reloadSingleRuleset​(int rulesetId)
                                 throws java.rmi.RemoteException
        Lädt einen Ruleset in allen aktiven und passiven WorkingSets neu.
        Parameters:
        rulesetId - Ruleset-ID
        Throws:
        java.rmi.RemoteException
      • reloadAllRulesets

        public void reloadAllRulesets()
                               throws java.rmi.RemoteException
        Lädt alle Rulesets in allen WorkingSets neu.
        Throws:
        java.rmi.RemoteException
      • checkout

        public WorkingSet checkout()
                            throws java.lang.Exception
        Holt den nächsten freien WorkingSet aus dem Pool. Falls kein freier WS vorhanden ist, wird ein neuer erzeugt. Es gibt eine obere Grenze für die Zahl der WorkingSets im Pool aus der Konfiguration.
        Returns:
        aktiver WorkingSet
        Throws:
        java.lang.Exception
      • checkin

        public void checkin​(WorkingSet ws)
        Gibt einen WorkingSet an den Pool zurück. Er wird dann aus der Liste der aktiven WS ausgetragen und wieder in die Liste der verfügbaren (passiven) WS übernommen.
        Parameters:
        ws - WorkingSet
      • setAvailableWorkingSets

        public void setAvailableWorkingSets​(java.util.LinkedList<WorkingSet> availWorkingSets)
        Setzt die Liste mit den verfügbaren WorkingSets.
        Parameters:
        availWorkingSets - Liste mit verfügbaren WorkingSets
      • getIxConnect

        public IXconnect getIxConnect()
        Liefert die Index Server Verbindung zurück.
        Returns:
        Index Server Verbindung
      • hasRule

        public boolean hasRule​(java.lang.String ruleName)
        Meldet zurück, ob der angegebene Regelname vorhanden ist.
        Parameters:
        ruleName - Regelname
        Returns:
        Regelname ist vorhanden