Endlosschleifen in Services und Prozessinstanzen erkennen
Es gibt eine Gruppe von Eigenschaften zur Schleifenermittlung, die Sie verwenden können, um Endlosschleifen in Services und Prozessinstanzen zu erkennen und zu bearbeiten.
Wenn ein Service über einen längeren Zeitraum ausgeführt wird, gibt die Service-Engine entweder eine Nachricht an die Datei SystemOut.log aus oder stoppt den Service. Mit der Eigenschaft loop-detection-exception wird festgelegt, welche Aktion von der Engine ausgeführt wird. Wird die Eigenschaft auf true (wahr) gesetzt, stoppt die Engine den Service und generiert eine Ausnahmebedingung. Standardmäßig ist diese Eigenschaft auf false (falsch) gesetzt.
Die Ausnahmebedingung wird verwendet, um die BPD-Instanz, die den Service enthält, darüber zu informieren, dass die Service-Engine gestoppt worden ist.
- Wenn eine BPD-Instanz über einen längeren Zeitraum ausgeführt wird, gibt die BPD-Engine eine Nachricht an die Datei SystemOut.log aus. Aufgrund dieser Informationen kann ein Administrator die Instanz entweder aussetzen oder anderweitig bearbeiten.
<service-engine>
<loop-detection-duration>120</loop-detection-duration>
<loop-detection-exception>false</loop-detection-exception>
</service-engine>
<bpd-engine>
<loop-detection-duration>60</loop-detection-duration>
</bpd-engine>
- CWLLG0872W: Der Service '{0}' wird seit {1} Sekunden ausgeführt und befindet sich möglicherweise in einer Endlosschleife.
- CWLLG0873W: Der Service '{0}' für die Instanz {1} ist seit {2} Sekunden aktiv und befindet sich möglicherweise in einer Endlosschleife.
- CWLLG0874E: Der Service '{0}' wurde nach {1} Sekunden beendet, da er sich möglicherweise in einer Endlosschleife befindet.
- CWLLG0875E: Der Service '{0}' für die Instanz {1} wurde nach {2} Sekunden beendet, da er sich möglicherweise in einer Endlosschleife befindet.
Wenn sich BPD-Instanzen nicht in einer Endlosschleife befinden, aber die folgende Nachricht in der Datei SystemOut.log vorhanden ist, sollte in Betracht gezogen werden, die Werte der Eigenschaft loop-detection-duration für die BPD-Engine zu ändern: CWLLG0871W: Die Instanz {0} der Geschäftsprozessdefinition (BPD) wird seit {1} Sekunden ausgeführt und befindet sich möglicherweise in einer Endlosschleife.
Beispiel: Um die Service-Engine entsprechend zu ändern, damit der Serviceablauf nach vier Minuten (240 Sekunden) gestoppt wird, fügen Sie den folgenden Code zur entsprechenden 100Custom.xml-Datei hinzu:
<server>
<service-engine>
<loop-detection-duration merge="replace">240</loop-detection-duration>
<loop-detection-exception merge="replace">true</loop-detection-exception>
</service-engine>
</server>