Class DirectPool

java.lang.Object
de.elo.mover.main.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 - 2020

  • Constructor Summary

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

    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 Indexserver-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 Details

    • 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 Details

    • 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 Indexserver-Verbindung zurück.
      Returns:
      Indexserver-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