Handhabung von Ausnahmebedingungen in Aggregationsflüssen

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:

Ausnahmebedingungen behandeln

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:

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

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:

  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 Knoten für Aggregationsantworten 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-Terminal dieser Knoten nicht.
Wenn Sie eine Verbindung zum Catch-Terminal des Knotens für Aggregationsantworten 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 Rechenknoten enthalten, um eventuell notwendige übertragungsspezifische Verarbeitungsschritte zu ermöglichen. Beispielsweise müssen Sie einen MQMD-Header hinzufügen, wenn die Nachricht von einem MQSendeknoten in eine WebSphere MQ-Warteschlange eingereiht werden soll.

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.

Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac12340_