Ausnahmen in einem TryCatch-Knoten abfangen

Sie können einen Nachrichtenfluss entwerfen, um Ausnahmen abzufangen, bevor sie an den Empfangsknoten geliefert werden. In einen einzelnen 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 (ExceptionList) in das lokale Fehlerprotokoll und anschließend die Informationen zu der aktuellen Ausnahme in die Ausnahmeliste, 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 Baumstruktur um die neuen Ausnahmeinformationen, die er in die Ausnahmeliste 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.

Wenn der Try-Datenfluss jedoch Verarbeitungsschritte ausgeführt hat, die Aktualisierungen von externen Datenbanken zur Folge haben, gehen diese nicht verloren. Die Aktualisierungen 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 Global koordinierte 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 enthält einen MQEmpfangsknoten, einen Rechenknoten und einen MQSendeknoten. Das Abfangterminal 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 enthält einen MQEmpfangsknoten, dem ein Filterknoten folgt, der für den Test eines Wert in der Nachricht codiert wurde. Ein Versuchs-/Abfangknoten wird mit dem TRUE-Terminal des Filterknoten verbunden, und das TRY-Terminal wird mit einem Rechenknoten verbunden, der von einem MQSendeterminal gefolgt wird. Das entsprechende Abfangterminal ist mit einem untergeordneten Nachrichtenfluss mit der Bezeichnung 'error1' verbunden, der eine allgemeine Fehlerbearbeitungsroutine bereitstellt. Ein zweites TryCatch-Terminal ist mit dem FALSE-Terminal des Filterknotens verbunden. Seine Versuchs- und Abfangterminals sind mit Knotenfolgen verbunden, die mit dem ersten Abfangversuchsterminal identisch sind.

Wenn der Empfangsknoten in Ihrem Nachrichtenfluss kein Catch-Terminal (z. B. einen Real-timeInput)-Knoten) enthält, aber im Nachrichtenfluss Fehler bearbeitet werden sollen, müssen Sie einen TryCatch-Knoten einfügen. Das folgende Beispiel zeigt, wie Sie eine Verbindung mit einem Datenfluss herstellen können, um diese Fehlerbearbeitung bereitzustellen. In diesem Beispiel könnten Sie die ESQL im Compute-Knoten des Abfangdatenflusses konfigurieren, um die abgefangene Ausnahme auszuwerten und den Namen der Ausgabewarteschlange dynamisch festzulegen.

Dieser Nachrichtenfluss enthält einen Echtzeitempfangsknoten gefolgt von einem Versuchs-/Abfangknoten. Das Try-Terminal des Versuchs-/Abfangknotens ist mit dem normalen Ausgabedatenfluss (Rechenknoten gefolgt von Veröffentlichungsknoten) verbunden, und das Abfangterminal ist mit dem Abfangdatenfluss (Traceknoten gefolgt von Rechenknoten gefolgt von MQEmpfangsknoten).
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht über die Implementierung
Zugehörige Tasks
Untergeordnete Nachrichtenflüsse verwenden
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Konfigurierbare Eigenschaften bearbeiten
Global koordinierte Nachrichtenflüsse konfigurieren
Handhabung von Ausnahmebedingungen in Aggregationsflüssen
Zugehörige Verweise
Integrierte Knoten
WebSphere MQ Enterprise Transport
WebSphere MQ Mobile Transport
WebSphere MQ Multicast Transport
WebSphere MQ Real-time Transport
WebSphere MQ Telemetry Transport
WebSphere MQ Web Services Transport
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Letzte Aktualisierung : 2009-02-17 15:28:21

ac18880_