Ausnahmen in einem Versuchs-/Abfangknoten 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 Versuchs-/Abfangknoten 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 Versuchs-/Abfangknoten verarbeitet eine Nachricht nicht, sondern ist nur einen Entscheidungspunkt in einem Nachrichtenfluss. Wenn der Versuchs-/Abfangknoten eine Nachricht empfängt, leitet er diese an das Versuchsterminal weiter. Der Broker übergibt die Steuerung an die Knotenfolge, die mit diesem Terminal verbunden ist (dem Versuchsfluss).

Wenn im Versuchsfluss eine Ausnahmebedingung ausgegeben wird, gibt der Broker die Steuerung wieder an den Versuchs-/Abfangknoten 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 leitet jetzt die Nachricht an die Knotenfolge weiter, die mit dem Abfangterminal (dem Abfangfluss) verbunden ist. Der Inhalt der weitergegebenen Nachrichtenbaumstruktur ist mit dem Inhalt identisch, der an das Versuchsterminal weitergegeben wurde. Dabei handelt es sich um den Inhalt, den die Baumstruktur hatte, als sie zuerst vom Versuchs-/Abfangknoten empfangen wurde. Der Knoten erweitert die Baumstruktur um die neuen Ausnahmeinformationen, die er in die Ausnahmeliste geschrieben hat. Alle Änderungen oder Zusätze, die von den Knoten im Versuchsfluss an der Nachrichtenbaumstruktur vorgenommen wurden, sind in der Nachrichtenbaumstruktur, die an den Abfangfluss weitergegeben wird, nicht vorhanden.

Wenn der Versuchsfluss jedoch eine Verarbeitung abgeschlossen hat, die Aktualisierungen an externen Datenbanken beinhalten, gehen diese nicht verloren. Die Aktualisierungen bleiben bestehen, während die Nachricht vom Abfangfluss verarbeitet wird, und die Entscheidung darüber, ob die Aktualisierungen festgeschrieben oder zurückgesetzt werden, wird in der Konfiguration Ihres Nachrichtenflusses und der einzelnen Knoten getroffen, die mit den Datenbanken interagieren. Wenn die Aktualisierungen auf Grund der von Ihnen festgelegten Konfiguration festgeschrieben werden, müssen Sie eine Logik in Ihren Abfangfluss aufnehmen, die die vorgenommenen Änderungen zurücksetzt.

Der Abschnitt Nachrichtenflusstransaktionen 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 Versuchs-/Abfangknoten 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 ist 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 Versuchs-/Abfangknoten. Das Abfangterminal von beiden Abfangversuchserminals 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 Versuchs-/Abfangknoten ist mit dem TRUE-Terminal des Filterknotens verbunden, und sein Versuchsterminal 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 Abfangversuchsterminal 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 über kein Abfangterminal verfügt (beispielsweise den Echtzeitempfangsknoten) und Sie Fehler im Fluss verarbeiten möchten, müssen Sie einen Versuchs-/Abfangknoten 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 Nachrichtenflüsse verwenden
Einen Nachrichtenfluss erstellen
Nachrichtenflussinhalt definieren
Konfigurierbare Eigenschaften bearbeiten
Nachrichtenflusstransaktionen 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: 18.05.2006
ac18880_