Class DirectPool

java.lang.Object
de.elo.mover.main.DirectPool

public class DirectPool extends 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
    Führt einen Pool von WorkingSet Objekten für Direct Rulesets.
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    Meldet zurück, wie viele Direct Threads in Wartestellung sind.
    void
    Gibt einen WorkingSet an den Pool zurück.
    Holt den nächsten freien WorkingSet aus dem Pool.
    Liefert die Indexserver-Verbindung zurück.
    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(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.
    int
    Meldet zurück, wie viele Direct Threads aktiv sind.
    boolean
    Meldet, ob der Pool aktive oder passive WorkingSets enthält.
    boolean
    Meldet zurück, ob gerade neue Rulesets geladen werden.
    void
    Lädt alle Rulesets in allen WorkingSets neu.
    void
    reloadSingleRuleset(int rulesetId)
    Lädt einen Ruleset in allen aktiven und passiven WorkingSets neu.
    void
    Setzt die Liste mit den verfügbaren WorkingSets.
    void
    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 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:
      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 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 RemoteException
      Lädt einen Ruleset in allen aktiven und passiven WorkingSets neu.
      Parameters:
      rulesetId - Ruleset-ID
      Throws:
      RemoteException
    • reloadAllRulesets

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

      public WorkingSet checkout() throws 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:
      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(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(String ruleName)
      Meldet zurück, ob der angegebene Regelname vorhanden ist.
      Parameters:
      ruleName - Regelname
      Returns:
      Regelname ist vorhanden