Bei der Verwendung von Aggregationsflüssen treten möglicherweise Ausnahmebedingungen auf.
Führen Sie folgende Task aus:
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:
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 | Timeout | 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.
Das folgende 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 Compute-Knotens auf einen Wert setzen, der die Angabe Ausnahmebedingung enthält.