WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Behandlung von MQInput-Fehlern

Der MQInput-Knoten führt bei der Behandlung fehlerhafter persistenter und transaktionsorientierter Nachrichten bestimmte Aktionen aus. Der Knoten versucht eine erneute Verarbeitung, wenn eine transaktionsorientierte Nachricht in die Eingabewarteschlange zurückgesetzt wird. Nicht transaktionsorientierte Nachrichten werden bei einer Ausnahmebedingung nicht in die Eingabewarteschlange zurückgesetzt.

Fehler, die bei nicht transaktionsorientierten Nachrichten auftreten, werden wie unter Fehler im Empfangsknoten verwalten beschrieben behandelt.

Diese Aktion wird in nachfolgender Tabelle zusammengefasst:

Fehlerereignis Fehlerterminal (Failure) verbunden Fehlerterminal (Failure) nicht verbunden Catch-Terminal verbunden Catch-Terminal nicht verbunden
Knoten stellt internen Fehler fest Der mit dem Fehlerterminal (Failure) verbundene Nachrichtenfluss handhabt den Fehler Nachricht wird in alternative Warteschlange eingereiht; Knoten wiederholt den Versuch, falls Einreihung fehlschlägt Nicht zutreffend Nicht zutreffend
Knoten gibt Nachricht an Ausgangsterminal weiter, im Ausgangsfluss tritt Ausnahmebedingung auf Nicht zutreffend Nicht zutreffend Der mit dem Catch-Terminal verbundene Nachrichtenfluss handhabt den Fehler Knoten wiederholt den Versuch
Knoten gibt Nachricht zum Catch-Terminal weiter, Ausnahmebedingung tritt im Nachrichtenfluss auf, der mit dem Catch-Terminal verbunden ist Fehler protokolliert, Nachricht zurückgesetzt Fehler protokolliert, Nachricht zurückgesetzt Nicht zutreffend Nicht zutreffend
Knoten gibt Nachricht zum Fehlerterminal (Failure) weiter, Ausnahmebedingung tritt im Nachrichtenfluss auf, der mit dem Fehlerterminal (Failure) verbunden ist Nicht zutreffend Nicht zutreffend Knoten wiederholt den Versuch Knoten wiederholt den Versuch

Wiederholungsverarbeitung

Der Knoten versucht eine erneute Verarbeitung, wenn eine Nachricht in die Eingabewarteschlange zurückgesetzt wird. Er überprüft, ob die Nachricht zuvor zurückgesetzt wurde. Ist dies der Fall, wird geprüft, ob der Rücksetzungszähler den Schwellenwert für die Zurücksetzung erreicht hat (diesem Wert entspricht). Der Rücksetzungszähler für die einzelnen Nachrichten wird von WebSphere MQ im MQMD verwaltet.

Sie geben das Attribut BOTHRESH für den Schwellenwert der Zurücksetzung bei der Erstellung der Warteschlange an (bzw. übernehmen den Standardwert null (0)). Wenn Sie den Standardwert 0 übernehmen, erhöht der Knoten diesen Wert auf eins (1). Der Knoten setzt den Wert auch dann auf 1, wenn er den aktuellen Wert nicht erkennen kann. Wenn der Rücksetzschwellenwert auf 1 gesetzt ist, wird die Nachricht einmal verarbeitet, aber sie wird nicht über das Ausgangsterminal des MQInput-Knotens wiederholt. Wenn die Nachricht mindestens einmal wiederholt werden soll, setzen Sie den Rücksetzschwellenwert auf 2.

  1. Falls der Knoten eine Nachricht nach zahlreichen fehlgeschlagenen Versuchen im Ausgabenachrichtenfluss an das Ausgabeterminal weitergegeben und die Anzahl der Wiederholungen den Rücksetzungsschwellenwert erreicht hat, versucht der Knoten, die Nachricht über das Fehlerterminal (Failure) weiterzugeben, falls dieses angeschlossen ist. Wenn Sie keine Verbindung zum Fehlerterminal (Failure) hergestellt haben, versucht der Knoten, die Nachricht in eine andere Warteschlange einzureihen. Wenn eine Nachricht über das Fehlerterminal (Failure) weitergegeben wird, enthält die Ausnahmeliste nicht die Ausnahmen, die in den Nachrichtenflüssen aufgetreten sind, die mit Ausgangs- oder Catch-Terminals verbunden sind; die Ausnahmeliste enthält neue Ausnahmen, die sich darauf beziehen, warum die Nachricht über das Fehlerterminal weitergegeben wurde (z. B. weil der Rücksetzschwellenwert erreicht wurde).

    Wenn nach dem Fehlerterminal (Failure) ein Fehler auftritt, werden weitere Versuche unternommen, bis das Rücksetzungszählerfeld im MQMD zweimal den Rücksetzungsschwellenwert erreicht, der für die Eingabewarteschlange eingestellt ist. Sobald dieser Grenzwert erreicht wird, versucht der Knoten, die Nachricht in einer anderen Warteschlange einzureihen.

  2. Wenn der Schwellenwert für die Zurücksetzung noch nicht erreicht wurde, ruft der Knoten die Nachricht erneut aus der Warteschlange ab. Schlägt dies fehl, wird die Situation als interner Fehler behandelt (siehe Beschreibung oben). Ist der Vorgang erfolgreich, gibt der Knoten die Nachricht an den Ausgangsfluss weiter.
  3. Wenn der Schwellenwert für die Zurücksetzung erreicht wurde, gilt Folgendes:
    • Wenn Sie eine Verbindung zum Fehlerterminal hergestellt haben, gibt der Knoten die Nachricht an dieses Terminal weiter. Der Fehler muss im Nachrichtenfluss gehandhabt werden, der mit dem Fehlerterminal (Failure) verbunden ist.
    • Wenn das Fehlerterminal (Failure) nicht angeschlossen ist, versucht der Knoten, die Nachricht in einer verfügbaren Warteschlange nach Vorgabe einzureihen:
      1. Die Nachricht wird für die Eingabewarteschlange in die Warteschlange zum Wiedereinreihen zurückgesetzter Nachrichten gestellt, falls diese definiert wurde (Warteschlangenattribut BOQNAME).
      2. Wenn keine Rücksetzungswarteschlange definiert ist oder diese vom Knoten nicht erkannt wird, wird die Nachricht in die Warteschlange für nicht zustellbare Nachrichten (DLQ) gestellt, falls diese definiert ist. (Wenn der WS-Manager des Brokers über den Befehl mqsicreatebroker definiert wurde, wurde eine DLQ mit dem Standardnamen SYSTEM.DEAD.LETTER.QUEUE definiert und für diesen Warteschlangenmanager aktiviert.)
      3. Wenn die Nachricht in keine dieser Warteschlangen gestellt werden kann, da ein MQPUT-Fehler vorliegt (dazu gehört auch, wenn die Warteschlange nicht vorhanden ist), oder weil diese vom Knoten nicht erkannt werden, kann sie nicht ohne Risiko des Nachrichtenverlustes verarbeitet werden.

        Da die Nachricht nicht gelöscht werden kann, versucht der Nachrichtenfluss weiterhin, die Nachricht zurückzusetzen. Er zeichnet die Fehlersituation auf, indem er Fehler in das lokale Fehlerprotokoll schreibt. Ein zweiter Hinweis auf diesen Fehler ist die kontinuierliche Erhöhung des Rücksetzungszählers der Nachricht in der Eingabewarteschlange.

        Wenn diese Situation eingetreten ist, weil keine der Warteschlangen vorhanden ist, können Sie eine der oben erwähnten Rücksetzungswarteschlangen definieren. Wenn der Zustand, aufgrund dessen die Nachricht nicht verarbeitet werden kann, nicht mehr besteht, können Sie vorübergehend den Wert des Attributs BOTHRESH erhöhen. Auf diese Weise wird die normale Verarbeitung der Nachricht erzwungen.

  4. Wenn der Rücksetzungsschwellenwert zweimal erreicht oder überschritten wurde, versucht der Knoten, die Nachricht nach Vorgabe in einer verfügbaren Warteschlange gemäß dem vorhergehenden Schritt einzureihen.

Transaktions-, Ereignisüberwachungs- und Rücksetzungsverarbeitung

Bei der Wiederholungsverarbeitung kann der MQInput die Transaktion zurücksetzen (backout), indem er die Nachricht in die Warteschlange zum Wiedereinreihen zurückgesetzter Nachrichten oder in die Warteschlange für nicht zustellbare Nachrichten stellt. Beim Erhalt der Nachricht aus der Eingabewarteschlange wird der Rücksetzungszähler geprüft. Bei Überschreiten des Rücksetzschwellenwerts wird die Nachricht unverzüglich zurückgesetzt, es findet keine weitere Verarbeitung der Nachricht statt. Die Backout-Operation erfolgt in einer von früheren Verarbeitungsfehlern separaten Transaktion, die Nachricht wird während der Backout-Transaktion nicht analysiert oder ausgewertet. Bei der Backout-Transaktion wird eine eigene Gruppe von Überwachungsereignissen generiert. Daher sind bei der Nachrichtenanalyse erhaltene Informationen (z. B. exceptionList) möglicherweise nicht verfügbar.

Nachrichtengruppierungsfehler handhaben

Von WebSphere MQ werden Nachrichtengruppierungen unterstützt. Sie können angeben, dass eine Nachricht einer Gruppe angehört. In diesem Fall wird ihre Verarbeitung unter Bezugnahme auf die anderen Nachrichten in der Gruppe abgeschlossen (d. h., entweder alle Nachrichten werden festgeschrieben, oder alle Nachrichten werden zurückgesetzt). Wenn Sie gruppierte Nachrichten an einen Broker senden, bleibt diese Bedingung bestehen, wenn Sie den Nachrichtenfluss korrekt konfiguriert haben. Während der Verarbeitung von Gruppennachrichten treten keine Fehler auf.

Um den Nachrichtenfluss für die korrekte Handhabung gruppierter Nachrichten zu konfigurieren, befolgen Sie die unter MQInput-Knoten beschriebenen Maßnahmen. Die korrekte Verarbeitung der Nachrichtengruppierung kann jedoch nicht garantiert werden, wenn während der Verarbeitung einer der Nachrichten ein Fehler auftritt.

Wenn Sie den MQInput-Knoten wie beschrieben konfiguriert haben, werden unter normalen Umständen alle Nachrichten in der Gruppe in einer einzigen Arbeitseinheit verarbeitet, die festgeschrieben wird, sobald die letzte Nachricht in der Gruppe erfolgreich verarbeitet wurde. Wenn jedoch vor der Verarbeitung der letzten Nachricht in der Gruppe ein Fehler auftritt, unterliegt die Arbeitseinheit, die die Nachrichten bis hin zu und einschließlich der Nachricht enthält, die den Fehler generiert hat, der Fehlerbehandlung, die von den hier dokumentierten Regeln definiert wurde. Dies kann bedeuten, dass die Arbeitseinheit zurückgesetzt wird.

Die übrigen Nachrichten in der Gruppe können jedoch möglicherweise vom Nachrichtenfluss erfolgreich gelesen und verarbeitet werden. Aus diesem Grund werden sie in einer neuen Arbeitseinheit verarbeitet und festgeschrieben. Sobald die letzte Nachricht festgestellt und verarbeitet wird, wird eine Festschreibung ausgeführt. Wenn also in einer Gruppe ein Fehler auftritt, der nicht die erste oder letzte Nachricht betrifft, ist es möglich, dass ein Teil der Gruppe zurückgesetzt und ein anderer Teil festgeschrieben wird.

Wenn die Anforderungen Ihrer Nachrichtenverarbeitung verlangen, dass diese Situation in einer bestimmten Weise gehandhabt wird, müssen Sie eine zusätzliche Fehlerbehandlung zur Verarbeitung von Fehlern in Nachrichtengruppierungen bereitstellen. Sie könnten beispielsweise das Fehlschlagen der Nachrichtengruppierung in einer Datenbank aufzeichnen und in den Abruf der einzelnen Nachrichten eine Prüfung der Datenbank integrieren. Auf diese Weise würde eine Rücksetzung erzwungen, wenn für die aktuelle Gruppierung bereits ein Fehler festgestellt wurde. Dadurch könnte sichergestellt werden, dass die gesamte gruppierung zurückgesetzt und nur verarbeitet wird, wenn alle Nachrichten erfolgreich sind.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:19:48


TaskthemaTaskthema | Version 8.0.0.5 | ac00414_