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 einen 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 Ausnahmeliste (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 Abfangterminal 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 auf Grund 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 Knoten für koordinierte Nachrichtenflüsse konfigurieren enthält eine Erläuterung der Konfigurationsoptionen.

Der Broker gibt die Steuerung in folgenden Fällen 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):

Das folgende Beispiel zeigt, wie Sie den Datenfluss konfigurieren können, um Ausnahmen im Empfangsknoten abzufangen. Das Abfangterminal des MQEmpfangsknotens wird mit einem Traceknoten verbunden, um den Fehler aufzuzeichnen.

Dieser Nachrichtenfluss verfügt über 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 Filterknotens verbunden sind. In jeder der beiden Routen, die die Nachricht nehmen kann, befindet sich ein TryCatch-Knoten. Das Abfangterminal von beiden TryCatch-Terminals 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 ist mit dem TRUE-Terminal des Filterknotens verbunden, und sein Try-Terminal ist mit einem Rechenknoten gefolgt von einem MQEmpfangsterminal verbunden. Sein Abfangterminal ist mit einem untergeordneten Datenfluss mit dem Namen '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 Abfangterminal (z. B. einen Echtzeiteingabeknoten) 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 Rechenknoten des Abfangdatenflusses konfigurieren, um die abgefangene Ausnahme auszuwerten und den Namen der Ausgabewarteschlange dynamisch festzulegen.

Dieser Nachrichtenfluss verfügt über einen Echtzeitempfangsknoten, gefolgt von einem Abfangversuchsknoten.  Das Versuchsterminal des Abfangversuchsknotens 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) verbunden.
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Übersicht zu Implementierungsvorgängen
Zugehörige Tasks
Untergeordnete Flüsse verwenden
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Konfigurierbare Eigenschaften bearbeiten
Knoten für 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 | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac18880_