Package de.elo.mover.main
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.
-
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.RemoteExceptionInitialisiert den Pool, erzeugt eine Indexserververbindung und löscht die aktiven bzw. pausierenden Rulesets.- Parameters:
webAppContextParam
- Daten aus der config.xml Dateiparam
- 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.RemoteExceptionLä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.RemoteExceptionLädt alle Rulesets in allen WorkingSets neu.- Throws:
java.rmi.RemoteException
-
checkout
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
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
Setzt die Liste mit den verfügbaren WorkingSets.- Parameters:
availWorkingSets
- Liste mit verfügbaren WorkingSets
-
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
-