Handhabung von Ausnahmebedingungen in Aggregationsflüssen

Bei der Verwendung von Aggregationsflüssen treten möglicherweise Ausnahmebedingungen auf.

Vorbereitungen:

Führen Sie die folgenden Aufgaben aus:

Ausnahmebedingungen behandeln

Falls weiter hinten in einem AggregateReply-Knoten ein Fehler festgestellt wird, gibt der Broker eine Ausnahmebedingung aus. Ein anderer Knoten im Nachrichtenfluss kann ebenfalls unter Verwendung der ESQL-Anweisung THROW eine Ausnahmebedingung ausgeben. In beiden Fällen wird eine ausgegebene Ausnahmebedingung an einer der folgenden zwei Stellen erfasst:

  • Im Empfangsknoten, in dem die Antworten eingehen
  • Der Knoten für AggregateReply

In der folgenden Tabelle werden Ereignisse aufgeführt sowie Informationen darüber, was mit einer Ausnahmebedingung geschieht, die weiter hinten im AggregateReply-Knoten ausgegeben wird.

Ereignis Weitergegebene Nachricht Ausgabeterminal Erfassungsort der Ausnahmebedingung
Eine erwartete Antwort geht im Empfangsknoten ein und wird an das Eingangsterminal des AggregateReply-Knotens übergeben. Die Antwort ist die letzte Antwort, die für die Vollständigkeit einer Aggregation benötigt wird. Zusammengefasste Antwortnachricht mit allen Antworten Ausgang Empfangsknoten
Eine unerwartete Antwort geht im Empfangsknoten ein und wird an den AggregateReply-Knoten übergeben. Sie wird nicht als gültige Antwort erkannt, und die Eigenschaft Zeitlimit bei unbekannten Nachrichten wird auf 0 gesetzt. Empfangene Nachricht Unbekannt Empfangsknoten
Da noch nicht alle Antworten für eine Aggregation eingetroffen sind, erfolgt eine Zeitlimitüberschreitung. Zusammengefasste Antwortnachricht mit allen empfangenen Antworten Zeitlimit AggregateReply-Knoten
Eine Zeitlimitüberschreitung des Typs 'Unbekannt' tritt auf, da eine zurückbehaltene Nachricht nicht als gültige Antwort identifiziert werden konnte. Zurückbehaltene Nachricht Unbekannt AggregateReply-Knoten
Es wird festgestellt, dass eine Aggregation zu einem anderen Zeitpunkt als dem Erhalt der letzten Antwort vollständig ist. Zusammengefasste Antwortnachricht mit allen Antworten Ausgang AggregateReply-Knoten

Wenn Sie Fehler behandeln möchten, die in Aggregationsflüssen auftreten, müssen Sie diese Ausnahmebedingungen in allen Instanzen all dieser Knoten im Nachrichtenfluss erfassen.

  1. Wechseln Sie in die Ansicht 'Brokeranwendungsentwicklung'.
  2. Öffnen Sie den Nachrichtenfluss, mit dem Sie arbeiten möchten.
  3. Wenn Sie diese Ausnahmebedingungen selbst abwickeln möchten, verbinden Sie das Catch-Terminal der einzelnen Empfangsknoten und AggregateReply-Knoten mit einer Knotenfolge, die den aufgetretenen Fehler behandelt.

    Wenn Sie eine einheitliche Fehlerbehandlungsmethode wünschen, hängen Sie die Catch-Terminals all dieser Knoten an eine einzelne Knotenfolge an, oder erstellen Sie einen untergeordneten Fluss, der Fehler immer auf dieselbe Weise behandelt, und hängen Sie diesen untergeordneten Fluss an jedes Catch-Terminal an.

  4. Wenn der Broker diese Ausnahmebedingungen mit der standardmäßigen Fehlerbehandlungsmethode handhaben soll, verbinden Sie die Catch-Terminals dieser Knoten nicht.
Wenn Sie eine Verbindung zum Catch-Terminal des AggregateReply-Knotens herstellen und die Nachricht über dieses Terminal an ein Ziel weitergeleitet werden soll, auf dem es für die spätere Verarbeitung abgerufen werden kann, muss der Nachrichtenfluss des Catch-Terminals einen Computeknoten enthalten, um eventuell notwendige transportspezifische Verarbeitungsschritte zu ermöglichen. Beispielsweise müssen Sie einen MQMD-Header hinzufügen, wenn die Nachricht von einem MQOutputknoten in eine WebSphere MQ-Warteschlange eingereiht werden soll.

Das nachfolgende ESQL-Beispiel demonstriert, wie ein MQMD-Header hinzugefügt wird, um die vom AggregateReply-Knoten empfangenen Antworten weiterzuleiten:

-- Add MQMD
SET OutputRoot.MQMD.Version = 2;
.
-- Konsolidierte Antworten in Ausgabenachricht einfügen
SET OutputRoot.XMLNS.Data.Parsed = InputRoot.ComIbmAggregateReplyBody;
.

Wenn die Informationen über die Ausnahmebedingung in der Ausgabenachricht weitergegeben werden sollen, müssen Sie außerdem die Eigenschaft Rechenmodus des Computeknotens auf einen Wert setzen, der die Angabe Ausnahmebedingung enthält.

Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Feedback

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

ac12340_