Sicherstellen, dass alle DLQ-Nachrichten verarbeitet werden

Der Handler für dead-Mail-Warteschlangen protokolliert alle Nachrichten in der DLQ, die zwar angezeigt, aber nicht entfernt wurden. Stellen Sie sicher, dass die DLQ möglichst wenige Nachrichten enthält.

Informationen zu dieser Task

Wenn Sie den DLQ-Handler als Filter verwenden, um eine kleine Untergruppe der Nachrichten aus der DLQ zu extrahieren, speichert der DLQ-Handler weiterhin einen Datensatz dieser Nachrichten in der DLQ, die er nicht verarbeitet hat. Außerdem kann der DLQ-Handler nicht garantieren, dass neue Nachrichten, die in der DLQ ankommen, angezeigt werden, selbst wenn die DLQ als First-in-First-out (FIFO) definiert ist. Wenn die Warteschlange nicht leer ist, wird die DLQ in regelmäßigen Abständen erneut durchsucht, um alle Nachrichten zu überprüfen.

Aus diesen Gründen sollten Sie sicherstellen, dass die DLQ möglichst wenige Nachrichten enthält. Wenn Nachrichten, die nicht gelöscht oder an andere Warteschlangen weitergeleitet werden können (aus welchem Grund auch immer), in der Warteschlange angesammelt werden können, erhöht sich die Auslastung der DLQ-Steuerroutine und die DLQ selbst ist in Gefahr, die Warteschlange zu füllen.

Gehen Sie wie folgt vor, um den DLQ-Handler zum Leeren der DLQ zu aktivieren:

Verfahren

  • Verwenden Sie für Nachrichten, die Sie andernfalls ignorieren würden, eine Aktion, die die Nachrichten in eine andere Warteschlange verschiebt.

    Versuchen Sie, den Befehl ACTION (IGNORE) nicht zu verwenden, der Nachrichten in der DLQ belässt-und denken Sie daran, dass ACTION (IGNORE) für Nachrichten angenommen wird, die nicht explizit von anderen Regeln in der Tabelle adressiert werden. Verwenden Sie stattdessen eine Aktion, die die Nachrichten in eine andere Warteschlange verschiebt. For example:

    ACTION (FWD) FWDQ (IGNORED.DEAD.QUEUE) HEADER (YES)
    
  • Machen Sie die letzte Regel in der Tabelle zu einer Catch-all -Regel, um Nachrichten zu verarbeiten, die von früheren Regeln in der Tabelle nicht berücksichtigt wurden.

    Die letzte Regel in der Tabelle könnte z. B. wie folgt aussehen:

    ACTION (FWD) FWDQ (REALLY.DEAD.QUEUE) HEADER (YES)
    

    Dadurch werden Nachrichten, die bis zur letzten Regel in der Tabelle durchgehen, an die Warteschlange REALLY.DEAD.QUEUE weitergeleitet, wo sie manuell verarbeitet werden können. Wenn Sie nicht über eine solche Regel verfügen, bleiben die Nachrichten wahrscheinlich unbegrenzt auf der DLQ.