Customizing der Nachrichtenwarteschlange

Überblick

Um einer Überlastung des Systems bei gleichzeitigem Eintreffen vieler Nachrichten vorzubeugen, kann konfiguriert werden, dass eingehende Nachrichten nicht sofort verarbeitet werden, sondern zunächst in einer Warteschlange landen. Diese Warteschlange wird dann in regelmäßigen Abständen abgefragt und eine konfigurierbare Menge der darin enthaltenen neue Nachrichten werden verarbeitet.

Auch ohne explizite Konfiguration werden ab einer bestimmten Anzahl von mit der Nachrichtenverarbeitung beschäftigter Threads weitere eintreffende Nachrichten in der Warteschlange abgelegt und nicht sofort verarbeitet.

Einstellungen Global Properties

EDI_INBOUND_IMMEDIATE

Mit diesem Global Property kann die sofortige Verarbeitung neu eintreffender Nachrichten deaktiviert werden, indem er auf den Wert false (Achtung, nicht true!) gesetzt wird. Neu eintreffende Nachrichten werden dann standardmäßig erstmal in der Warteschlange abgelegt.

Wird die Global Property nicht gesetzt oder auf true gesetzt, so werden eintreffende Nachrichten sofort verarbeitet.

Achtung: Auch wenn die Global Property nicht gesetzt ist, kann es bei gleichzeitigem Eintreffen sehr vieler Nachrichten aus Stabilitätsgründen vorkommen, dass nicht alle nachrichten sofort verarbeitet werden, sondern einige Nachrichten in der Warteschlange landen. Diese werden dann bei den nächsten Abfragen der Warteschlange (diese wird auch abgefragt, wenn der Global Property auf true oder gar nicht gesetzt ist) verarbeitet.

INBOUND_EDI_QUEUE_AMOUNT_PER_EXECUTION

Mit diesem Global Property kann angegeben werden, wie viele Nachrichten bei einer Abfrage der Nachrichtenwarteschlange “abgeholt” beziehungsweise verarbeitet werden. Standardmäßig (d.h. wenn die GP nicht gesetzt ist) werden maximal 100 Nachrichten pro Abfrage verarbeitet.

INBOUND_EDI_QUEUE_CRON_EXPRESSION

Mit diesem Global Property kann eine sogenannte Cron Expression angegeben werden. Diese definiert, in welchen Abständen und zu welchen Zeitpunkten die Nachrichtenwarteschlange abgerufen wird. Die Cron Expression besitzt 7 Stellen: Sekunden, Minuten, Stunden, Tag des Monats, Monat, Tag der Woche, Jahr. Ein hilfreicher Generator zur Erzeugung kann hier abgerufen werden.

Achtung: Dieses 7-stellige Notations-Format findet erst seit WiM-Version 1.8.15 Anwendung! Zuvor wurde ein 6-stelliges Format verwendet. Dieses ist mit der neuen Implementierung nicht kompatibel und muss abgeändert werden!

Der Standard-Wert dieser GlobalProperty (d.h. der Wert, der verwendet wird, wenn die GP nicht gesetzt ist) entspricht einer Abfrage zu Beginn jeder neuen Minute. Dies entspricht folgender Cron Expression:

Sekunden Minuten Stunden Tag des Monats Monat Tag der Woche Jahr
0 0/1 * ? * * *



Einige weitere Beispiele:

Sekunden Minuten Stunden Tag des Monats Monat Tag der Woche Jahr Beispiel
* * * ? * * * Jede Sekunde
5 * * ? * * * Alle 5 Sekunden
0 2 * ? * * * Alle 2 Minuten
0 0/2 * ? * * * Alle 2 Min., beginnend bei Min. 0 jeder neuen Stunde