Den Aggregations-Sammelnachrichtenfluss erstellen

Der Aggregations-Sammelnachrichtenfluss empfängt die Antworten auf die Anforderungsnachrichten, die vom Verteilernachrichtenfluss gesendet wurden, und konstruiert eine kombinierte Antwortnachricht mit allen empfangenen Antworten.

Vorbereitungen:

Zur vollständigen Ausführung dieser Task muss die folgende Task abgeschlossen worden sein:

Es wird außerdem empfohlen, vor dem Beenden dieser Task den Überblick über Nachrichtenfluss-Aggregation zu lesen.

Wenn es sich bei dem Verteilernachrichtenfluss um einen transaktionalen Fluss handelt, kann es sein, dass die kombinierte Antwortnachricht generiert wird, bevor alle Antworten vom Sammelnachrichtenfluss empfangen wurden. Falls es sich nicht um einen transaktionalen Fluss handelt, ist die Generierung der Antwortnachricht von den angegebenen Zeitlimitwerten abhängig. Weitere Informationen zu diesem Thema finden Sie unter Den Aggregations-Verteilernachrichtenfluss erstellen.

Der Verteiler- und der Sammelnachrichtenfluss können im selben Nachrichtenfluss enthalten sein. Es wird jedoch empfohlen, zwei separate Flüsse zu erstellen. Richten Sie in derselben oder in verschiedenen Ausführungsgruppen nicht mehrere Kopien desselben Sammelnachrichtenflusses ein. Weitere Informationen zu den Vorteilen der Konfiguration separater Nachrichtenflüsse finden Sie unter Aggregations-Verteilungsflüsse und -Sammlungsflüsse zuordnen.

Ein Beispiel eines Sammelnachrichtenflusses finden Sie im Beispiel Beispielprogramm 'Airline Reservations' im WebSphere Message Broker.

Gehen Sie folgendermaßen vor, um den Sammelnachrichtenfluss zu erstellen:

  1. Wechseln Sie in die Ansicht 'Brokeranwendungsentwicklung'.
  2. Erstellen Sie einen Nachrichtenfluss, um die Sammlungsverarbeitung zu ermöglichen.
  3. Fügen Sie in der Editoransicht folgende Knoten hinzu, und konfigurieren und verbinden Sie diese wie beschrieben:
    Empfangsknoten
    Der Empfangsknoten (Input) empfängt die Antworten auf die Mehrfachanforderungsnachrichten, die vom Verteilernachrichtenfluss generiert wurden.

    Hierbei muss es sich um einen Empfangsknoten handeln, der das Request/Reply-Modell unterstützt, beispielsweise ein MQEmpfangsknoten oder eine Kombination aus diesen Knoten (dies hängt von den Anforderungen der Anwendungen ab, von denen diese Antworten gesendet werden). Die von den einzelnen Empfangsknoten empfangene Antwort muss in demselben Protokoll gesendet werden wie die Anforderung, der sie entspricht (wenn Sie beispielsweise einen MQSendeknoten im Verteilernachrichtenfluss einschließen, muss die Antwort auf diese Anforderung von einem MQEmpfangsknoten in diesem Fluss empfangen werden).

    1. Klicken Sie mit der rechten Maustaste auf den Empfangsknoten, und wählen Sie Eigenschaften aus.
    2. Geben Sie für diesen Knoten die Quelle der Eingabenachrichten an. Geben Sie beispielsweise in der Basiseigenschaft Warteschlangenname den Namen einer WebSphere MQ-Warteschlange an, aus der der MQEmpfangsknoten Nachrichten empfängt.
    3. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
    4. Verbinden Sie das Ausgangsterminal des Empfangsknotens mit dem Eingangsterminal eines Knotens für Aggregationsantworten (AggregateReply).

      Dies ist die einfachste Konfiguration; Sie können zwischen dem Empfangsknoten und dem Knoten für Aggregationsantworten gegebenenfalls weitere Knoten einfügen. Beispiel: Sie möchten die Anforderung zu Prüfzwecken speichern (in einem Warehouse-Knoten).

    Anmerkung: Es ist ratsam, wie oben beschrieben einen Empfangsknoten eingerichtet zu haben, der alle Aggregationsantwortnachrichten am Anfang des Sammelnachrichtenflusses empfängt. Wenn Sie nur einen statt mehrerer Knoten verwenden, gewährleisten Sie, dass nicht immer ein spezieller Antwortempfangsknoten-Thread die Aggregation und Ausführung des Nachrichtenflusses beenden muss, während andere ihre Antwortnachrichten an den Knoten für Aggregationsantworten senden, der daraufhin das Zeitlimit überschreiten darf. Durch die Verwendung eines einzelnen Empfangsknotens wird eine sequenziellere Verarbeitung der Antworten jeder einzelnen Aggregation ermöglicht, die mit Hilfe von zusätzlichen Instanzen erfolgreich skaliert werden kann, um die Verarbeitungsleistung zu erhöhen.
    Knoten für Aggregationsantworten
    Der Knoten für Aggregationsantworten (AggregateReply) empfängt die eingehenden Antworten vom Empfangsknoten über sein Eingangsterminal. Jede Antwortnachricht, die vom Knoten für Aggregationsantworten empfangen wird, wird permanent in der Brokerdatenbank gespeichert.

    Wenn alle Antworten für eine bestimmte Gruppe von Aggregationsanforderungen erfasst wurden, erstellt der Knoten für Aggregationsantworten eine zusammengefasste Antwortnachricht und gibt diese über das Ausgangsterminal weiter.

    1. Klicken Sie mit der rechten Maustaste auf den Knoten für Aggregationsantworten, und klicken Sie auf Eigenschaften.
    2. Legen Sie die Eigenschaft Aggregationsname des Knoten für Aggregationsantworten fest, um diese Aggregation zu identifizieren. Setzen Sie diesen Wert auf den Wert, der für die Eigenschaft Aggregationsname im entsprechenden Knoten zur Aggregationssteuerung im Verteilernachrichtenfluss festgelegt wurde.
    3. Optional: Legen Sie für die Option Zeitlimit bei unbekannten Nachrichten einen Wert fest, wenn Sie eine nicht erkannte Nachricht behalten möchten, bevor Sie diese an das UNBEKANNT-Terminal weitergeben. Wenn Sie separate Verteiler- und Sammelnachrichtenflüsse verwenden, kann es sinnvoll sein, diesen Wert auf eine Zahl ungleich Null zu setzen, falls beim Eingang der Steuernachricht Verzögerungen auftreten.
    4. Optional: Verbinden Sie das UNBEKANNT-Terminal mit einem anderen Knoten oder einer Folge von Knoten, wenn Sei nicht erkannte Nachrichten explizit verarbeiten möchten. Falls Sie dieses Terminal nicht mit einem anderen Knoten im Nachrichtenfluss verbinden, werden Nachrichten, die über dieses Terminal weitergegeben werden, gelöscht.
    5. Optional: Wenn Sie für diese Aggregation einen Zeitlimitwert im Knoten für Aggregationssteuerung angegeben haben, verbinden Sie das Zeitlimit-Terminal mit einem anderen Knoten oder einer anderen Knotenfolge, falls Zeitlimits, die vor Eintreffen aller Antworten erreicht werden, explizit verarbeitet werden sollen. Zusammengefasste Antworten, die nicht ganz vollständig sind, werden an das Zeitlimit-Terminal gesendet, wenn das Zeitlimit erreicht wird. Falls Sie dieses Terminal nicht mit einem anderen Knoten im Nachrichtenfluss verbinden, werden Nachrichten, die über dieses Terminal weitergegeben werden, gelöscht.
    6. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
    7. Verbinden Sie das Ausgangsterminal des Knotens für Aggregationsantworten mit dem Eingangsterminal eines Rechenknotens.
    Anmerkung: Das Steuerterminal des Knotens für Aggregationsantworten von Version 6.0 ist veraltet, und standardmäßig werden alle Verbindungen (direkt oder indirekt) zu diesem Terminal ignoriert. Dadurch wird die Effizienz der Aggregationsflüsse maximiert, während die Zuverlässigkeit der Aggregationen nicht beeinträchtigt wird. Dies ist die optimale Konfiguration.

    Wenn der Knoten für Aggregationsantworten jedoch auf seinem Steuerterminal die Steuernachricht empfangen soll, die vom entsprechenden Knoten zur Aggregationssteuerung im Verteilernachrichtenfluss gesendet wurde, müssen Sie die unter Den Aggregations-Verteilernachrichtenfluss erstellen beschriebenen erforderlichen Verbindungen herstellen. Es wird empfohlen, einen möglichst direkten Pfad von Knoten für Aggregationsantworten zum Sendeknoten zu erstellen. Ein kurzer Sammelnachrichtenfluss erhöht die Leistung der Aggregationen. Der Inhalt dieser Steuernachricht darf nicht geändert werden.

    Für die Erkennung des Steuerterminals und der zugehörigen Verbindungen müssen Sie außerdem die Umgebungsvariable MQSI_AGGR_COMPAT_MODE aktivieren. Diese Option hat jedoch Auswirkungen hinsichtlich der Leistung und des Verhaltens von Nachrichtenaggregationen. Eine vollständige Beschreibung dieser Auswirkungen und der Umgebungsvariablen finden Sie unter Verwendung der Steuernachricht in Aggregationsflüssen.

    Rechenknoten
    Der Rechenknoten empfängt die Nachricht, die die kombinierten Antworten enthält. Wahrscheinlich ist das Format dieser kombinierten Nachricht nicht für die Ausgabe gültig, da die zusammengefasste Antwortnachricht eine unübliche Struktur aufweist und nicht in den für einige Knoten (z. B. den MQSendeknoten) erforderlichen Bitstrom umgewandelt werden kann. Die Ausgabe- und Zeitlimit-Terminals geben immer eine zusammengefasste Antwortnachricht aus und erfordern daher stets die weitere Verarbeitung vor einem MQSendeknoten. Schließen Sie also einen Rechenknoten ein, und konfigurieren Sie ihn so, dass er eine gültige Ausgabenachricht erstellt.
    1. Klicken Sie mit der rechten Maustaste auf den Rechenknoten, und klicken Sie auf Eigenschaften.
    2. Geben Sie den Namen des ESQL-Moduls an, das die Funktion dieses Knotens in der Basiseigenschaft ESQL-Modul anpasst.
    3. Klicken Sie mit der rechten Maustaste auf den Knoten, und klicken Sie auf ESQL öffnen, um die ESQL-Datei zu öffnen, die das Modul für diesen Knoten enthält. Das Modul wird in der ESQL-Editoransicht hervorgehoben.
    4. Codieren Sie den ESQL-Code für die Erstellung einer einzelnen Ausgabenachricht auf Basis der zusammengefassten Antworten in der Eingabenachricht.

      Die Struktur der zusammengefassten Antwortnachricht, die im Ausgangsterminal weitergegeben wird, sowie die Informationen zum Zugriff auf deren Inhalt finden Sie im Abschnitt Den Inhalt der kombinierten Nachricht aufrufen.

    5. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
    6. Verbinden Sie das Ausgangsterminal des Rechenknotens mit dem Eingangsterminal des Sendeknotens, der die Zieladresse der einzelnen Antwortnachricht darstellt.
    Sendeknoten
    Schließen Sie für Ihren Sammelnachrichtenfluss einen Sendeknoten ein. Hierbei kann es sich um einen der integrierten Knoten oder um einen benutzerdefinierten Sendeknoten handeln.
    1. Klicken Sie mit der rechten Maustaste auf den Sendeknoten, und klicken Sie auf Eigenschaften.
    2. Geben Sie für diesen Knoten die Zieladresse der Ausgabenachricht an. Geben Sie beispielsweise in der Basiseigenschaft Warteschlangenname den Namen einer WebSphere MQ-Warteschlange an, an die der MQSendeknoten Nachrichten sendet.
    3. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
  4. Drücken Sie Strg+S, um den Nachrichtenfluss zu speichern und seine Konfiguration zu prüfen.

Den Inhalt der kombinierten Nachricht aufrufen

Der Knoten für Aggregationsantworten erstellt in Baumstruktur der kombinierten Nachricht unterhalb von 'Root' einen Ordner namens 'ComIbmAggregateReplyBody'. Darunter erstellt er mehrere Ordner und verwendet dabei die Ordnernamen, die Sie in den Knoten zur Aggregationsanforderung festlegen. Die zugehörigen Antwortnachrichten werden unter diesen eingereiht.

Die Anforderungsnachrichten können beispielsweise folgende Ordnernamen haben:

  • TAXI
  • HOTEL

Die resultierende zusammengefasste Antwortnachricht, die vom Knoten für Aggregationsantwortnachrichten erstellt wurde, kann in etwa folgende Struktur aufweisen:

Dies ist ein Diagramm der Baumstruktur für den zusammengefassten Nachrichteninhalt, der unter 'Root' unterhalb des Elements 'ComIbmAggregateReplyBody' erstellt wurde. Sein Inhalt wird im umgebenden Text beschrieben.

Mit dem Rechenknoten können Sie unter Verwendung des folgenden Korrelationsnamens die Antwort des Taxi-Unternehmens aufrufen:

InputRoot.ComIbmAggregateReplyBody.TAXI.xyz

Der Ordnername muss nicht eindeutig sein. Falls Sie mehrere Anforderungen mit dem Ordnernamen TAXI haben, können Sie die separaten Antworten mit Hilfe der Subscript-Schreibweise für Bereiche aufrufen. Beispiel:

InputRoot.ComIbmAggregateReplyBody.TAXI[1].xyz
InputRoot.ComIbmAggregateReplyBody.TAXI[2].xyz
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac12300_