Bei der Verwendung von Aggregationsflüssen werden Sie möglicherweise feststellen, dass Ausnahmebedingungen auftreten. Dieses Thema enthält Informationen zu deren Handhabung.
Vorbereitungen:
Zur vollständigen Ausführung dieser Task müssen die folgenden Tasks abgeschlossen worden sein:
Falls weiter hinten in einem Knoten für Aggregationsantworten (AggregateReply) 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 Knoten für Aggregationsantworten ausgegeben wird.
Ereignis | Weitergegebene Nachricht | Ausgabeterminal | Erfassungsort der Ausnahmebedingung |
---|---|---|---|
Eine erwartete Antwort geht im Empfangsknoten ein und wird an das Eingangsterminal des Knotens für Aggregationsantworten übergeben. Sie 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 Knoten für Aggregationsantworten ü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 | Knoten für Aggregationsantworten |
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 | Knoten für Aggregationsantworten |
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 | Knoten für Aggregationsantworten |
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. Gehen Sie hierfür folgendermaßen vor:
Das nachfolgende ESQL-Beispiel demonstriert, wie ein MQMD-Header hinzugefügt wird, um die vom Knoten für Aggregationsantworten empfangenen Antworten weiterzuleiten:
-- Hinzufügen von MQMD SET OutputRoot.MQMD.Version = 2; . -- Konsolidierte Antworten in die Ausgabenachricht aufnehmen SET OutputRoot.XML.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 Rechenknotens auf einen Wert setzen, der die Angabe Ausnahmebedingung enthält.