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.

Ausnahmen in einem TryCatch-Knoten abfangen

Sie können einen Nachrichtenfluss entwerfen, um Ausnahmen abzufangen, bevor sie an den Empfangsknoten geliefert werden. In einem Nachrichtenfluss können Sie einen oder mehrere TryCatch-Knoten einfügen, um einen zentralen Fehlerpunkt (Single Point of Failure) für eine Knotenfolge zur Verfügung zu stellen. Auf diese Weise können Sie eine sehr spezifische Fehlerbearbeitung und -behebung bereitstellen.

Ein TryCatch-Knoten verarbeitet eine Nachricht nicht, sondern ist nur ein Entscheidungspunkt in einem Nachrichtenfluss. Wenn der TryCatch-Knoten eine Nachricht empfängt, gibt er sie an das Try-Terminal weiter. Der Broker übergibt die Steuerung an die Knotenfolge, die mit diesem Terminal verbunden ist (d. h. an den Try-Datenfluss).

Wenn im Try-Datenfluss eine Ausnahme ausgelöst wird, gibt der Broker die Steuerung an den TryCatch-Knoten zurück. Der Knoten schreibt den aktuellen Inhalt der Baumstruktur für Ausnahmelisten in das lokale Fehlerprotokoll und anschließend die Informationen zu der aktuellen Ausnahme in die Baumstruktur für Ausnahmelisten, wobei die dort gespeicherten Informationen überschrieben werden.

Der Knoten gibt die Nachricht an die Knotenfolge weiter, die mit dem Catch-Terminal verbunden ist (d. h. an den Abfangdatenfluss). Der Inhalt der weitergegebenen Nachrichtenbaumstruktur ist mit dem Inhalt identisch, der an das Try-Terminal weitergegeben wurde. Dabei handelt es sich um den Inhalt, den die Baumstruktur hatte, als sie zuerst vom TryCatch-Knoten empfangen wurde. Der Knoten erweitert die Nachrichtenbaumstruktur um die neuen Ausnahmeinformationen, die er in die Baumstruktur für Ausnahmelisten geschrieben hat. Änderungen oder Hinzufügungen, die die Knoten im Try-Datenfluss vorgenommen haben, sind in der Nachrichtenbaumstruktur, die an den Abfangdatenfluss übergeben wird, nicht enthalten.

Wurden durch den Try-Datenfluss allerdings auch Änderungen an externen Datenbanken vorgenommen, so gehen diese Änderungen nicht verloren. Sie bleiben während der Verarbeitung der Nachricht durch den Abfangdatenfluss erhalten und die Entscheidung, ob die Aktualisierungen festgeschrieben oder zurückgesetzt werden, wird bei der Konfiguration Ihres Nachrichtenflusses und der einzelnen Knoten, die mit den Datenbanken interagieren, getroffen. Wenn die Aktualisierungen aufgrund der von Ihnen vorgenommenen Konfiguration festgeschrieben werden, müssen Sie Ihren Abfangdatenfluss um eine Logik erweitern, mit der die durchgeführten Änderungen zurückgesetzt werden.

Der Abschnitt Transaktionalität für Nachrichtenflüsse konfigurieren enthält eine Erläuterung der Konfigurationsoptionen.

Der Broker gibt die Steuerung an den nächsten Abfangpunkt im Nachrichtenfluss zurück (wobei es sich um einen anderen TryCatch-Knoten handeln kann, aber letztendlich immer um den Empfangsknoten), wenn eine der folgenden Bedingungen zutrifft:

Das folgende Beispiel zeigt, wie Sie den Datenfluss konfigurieren können, um Ausnahmen im Empfangsknoten abzufangen. Das Catch-Terminal des MQInput-Knotens wird mit einem Trace-Knoten verbunden, um den Fehler aufzuzeichnen.

Dieser Nachrichtenfluss verfügt über einen MQEmpfangsknoten, einen Rechenknoten und einen MQSendeknoten. Das Catch-Terminal des MQEmpfangsknotens ist mit einem Traceknoten verbunden.

Im folgenden Beispiel enthält der Nachrichtenfluss zwei separate Verarbeitungsdatenflüsse, die mit den TRUE- und FALSE-Terminals des Filter-Knotens verbunden sind. In jeder der beiden Routen, die die Nachricht nehmen kann, befindet sich ein TryCatch-Knoten. Das Catch-Terminal von beiden TryCatch-Knoten ist mit einem allgemeinen untergeordneten Fehlerverarbeitungsdatenfluss verbunden.

Dieser Nachrichtenfluss verfügt über einen MQEmpfangsknoten, dem ein Filterknoten folgt, der für den Test eines Werts in der Nachricht codiert wurde. Ein TryCatch-Knoten wird mit dem TRUE-Terminal des Filterknotens verbunden und dessen Try-Terminal ist mit einem Rechenknoten verbunden, dem ein MQAusgabeterminal folgt. Sein Catch-Terminal ist mit dem untergeordneten Fluss 'error1' verbunden, der eine allgemeine Routine zur Fehlerverarbeitung bereitstellt. Ein zweites TryCatch-Terminal wird mit dem FALSE-Terminal des Filterknotens verbunden. Seine Try- und Catch-Terminals sind mit Knotenfolgen verbunden, die mit dem ersten TryCatch-Terminal identisch sind.

Wenn der Empfangsknoten in Ihrem Nachrichtenfluss kein Catch-Terminal enthält, aber im Nachrichtenfluss Fehler bearbeitet werden sollen, müssen Sie einen TryCatch-Knoten einfügen.

Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:20:01


TaskthemaTaskthema | Version 8.0.0.5 | ac18880_