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 Nachrichtenflussaggregation zu lesen.

Abhängig davon, ob es sich bei dem Verteilernachrichtenfluss um einen transaktionalen Fluss handelt und, falls nicht, von den angegebenen Zeitlimitwerten kann die kombinierte Antwortnachricht generiert werden, bevor alle Antworten vom Sammelnachrichtenfluss empfangen werden. Weitere Informationen zu diesem Thema finden Sie unter Den Aggregations-Verteilernachrichtenfluss erstellen.

Die in WebSphere Message Broker zur Verfügung gestellte Beispielanwendung Airline ist ein Beispiel eines Sammelnachrichtenflusses.

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.

      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 Warehouseknoten).

    Knoten für Aggregationsantworten
    Der Knoten für Aggregationsantworten empfängt die eingehenden Antworten vom Empfangsknoten über sein Eingangsterminal. Jede Antwortnachricht, die vom Knoten für Aggregationsantworten empfangen wird, wird persistent 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 Sie 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 Umgebungsvariable finden Sie unter Verwendung der Steuernachricht in Aggregationsflüssen.

    Rechenknoten
    Der Rechenknoten empfängt die Nachricht, die die kombinierten Antworten enthält. Da das Format dieser kombinierten Nachricht wahrscheinlich nicht für die Ausgabe gültig ist, müssen Sie diesen Knoten konfigurieren, damit eine gültige Ausgabenachricht erstellt wird.
    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 umgebenen 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, 2005 Letzte Aktualisierung: Nov 17, 2005
ac12300_