eBiss 3

Hilfe & Dokumentation

Benutzer-Werkzeuge

Webseiten-Werkzeuge


troubleshooting:delegatoroutofmemory

Delegator and OutOfMemoryException

Problem:

Wird in relmäßigen Abständen eine OutOfmemory Exception ausgelöst, handelt es sich meist um ein natürliches Phänomen. Während einer Laufzeit von 10m werden ca. 450 Prozesse bearbeitet. Da einem Prozess maximal ca. 1,6 GB Speicher zur Verfügung steht, kann es zu einem Speicherüberlauf kommen.

Symptome:

Regelmäßige OutOfMemoryException1)

Lösung

Die Lösung besteht darin, den simplen Delegate durch ein QueuedDelegate zu ersetzen. Dieser ist in der Lage, Aufträge in eine temporäre Queue zurückzustellen. Dabei werden die Aufträge erst wieder gestartet, wenn die Queue wieder neue Aufträge bearbeiten kann.

QueuedDelegate Properties und deren Bedeutung
QueueNameDie Lastbalancierung wird nur innerhalb der gleich benannten Queue vorgenommen. Hier kann dadurch das System in verschiedene QueueBereiche aufgeteilt werden. Ansonsten Standard belassen: DefaultQueue
MaxQueueEntriesWie viele Prozesse max. gleichzeitig in dieser Queue aufgenommen werden.

VORSICHT: Wenn man in 2 versch. jobs mit 2 versch Delegates die gleiche Queue ansteuert, aber unterschiedliche Max Einträge hat, ist das Verhalten unter Umständen etwas schwer nachvollziehbar, denn dann gilt für den jeweiligen Delegate eine andere Grenze der max. Auslastung bevor etwas tatsächlich gequeued wird. Also im Zweifel auf den gleichen Wert einstellen, dann wird das Verhalten etwas transparenter.
QueueWaitTimeoutDa bei diesem Verfahren alle Prozesse eigentlich am laufen (nur auf Pause) bleiben, gibt dieser Wert an wie viele Minuten darauf gewartet werden soll, dass die Queue wieder Platz hat. Default = 30 (minuten). Nach dieser Zeit wird das Warten abgebrochen und ein Task erzeugt. Stehen gebliebene Dinge müssen in einem solchen Fall dann im Zweifel manuell wirder angeschoben werden.
1)
Speicherüberlauf
troubleshooting/delegatoroutofmemory.txt · Zuletzt geändert: 2024/02/20 08:15 von 127.0.0.1