Den Aggregations-Verteilernachrichtenfluss erstellen

Der Aggregations-Verteilernachrichtenfluss empfängt die ursprüngliche Eingabenachricht und strukturiert sie so um, dass einer Reihe von Zielanwendungen eine Reihe von Anforderungen präsentiert werden.

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.

Der Verteiler- und der Sammelnachrichtenfluss können im selben Nachrichtenfluss enthalten sein. Es wird jedoch empfohlen, zwei separate Flüsse zu erstellen. Weitere Informationen zu den Vorteilen der Konfiguration separater Nachrichtenflüsse finden Sie unter Aggregations-Verteilungsflüsse und -Sammlungsflüsse zuordnen.

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

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

  1. Wechseln Sie in die Ansicht 'Brokeranwendungsentwicklung'.
  2. Erstellen Sie einen neuen Nachrichtenfluss, um die Verteilungsverarbeitung 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 eine Eingabenachricht, auf deren Basis mehrere Anforderungsnachrichten generiert werden. Hierbei kann es sich um einen der integrierten Knoten oder um einen benutzerdefinierten Empfangsknoten handeln.
    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. Es wird empfohlen, für die erweiterte Eigenschaft Transaktionsmodus die Standardeinstellung 'Ja' festzulegen, um sicherzustellen, dass Nachrichten für Aggregationsanforderungen unter dem Synchronisationspunkt eingereiht werden. Dadurch wird vermieden, dass der Knoten für Aggregationsantworten Antwortnachrichten vor der Steuernachricht erhält, in der der Knoten über die Aggregationsinstanz informiert wird. Durch die transaktionale Steuerung für den Verteilernachrichtenfluss stellen Sie sicher, dass der Verteilernachrichtenfluss beendet wird, bevor der Knoten für Aggregationsantworten eine Antwortnachricht erhält.
    4. Verbinden Sie das Ausgangsterminal des Empfangsknotens mit dem Eingangsterminal eines Knotens zur Aggregationssteuerung (AggregateControl).

      Dies ist die einfachste Konfiguration; Sie können zwischen dem Empfangsknoten und dem Knoten zur Aggregationssteuerung gegebenenfalls weitere Knoten einfügen. Beispiel: Sie möchten die Anforderung zu Prüfzwecken speichern (in einem Warehouse-Knoten) oder der Nachricht eine eindeutige Kennung hinzufügen (in einem Rechenknoten).

    5. Optional: Wenn Ihre Verteiler- und Sammelnachrichtenflüsse in einem Nachrichtenfluss kombiniert sind, sollten Sie die Eigenschaft Modus für Reihenfolge in der Registerkarte 'Erweitert' ändern. Wählen Sie die Option Nach Warteschlangenreihenfolge, und stellen Sie sicher, dass auch die Option Logische Reihenfolge ausgewählt ist. In diesem Fall wird der Empfangsknoten zwangsweise zu einem Einzelthread, um die logische Reihenfolge der Nachrichten beizubehalten, die in der Warteschlange eintreffen. Dies führt dazu, dass jeder von Ihnen zur Verfügung gestellte zusätzliche Instanz-Thread nur gemeinsam von den Empfangsknoten der Sammelnachrichtenflüsse benutzt wird, um die Leistung der Aggregation zu verbessern. Wenn sich Ihre Sammel- und Verteilernachrichtenflüsse in separaten Nachrichtenflüssen befinden, ist dieser Schritt nicht erforderlich, da Sie dem Sammelnachrichtenfluss zusätzliche Threads speziell zur Verfügung stellen können.
    Knoten zur Aggregationssteuerung
    Der Knoten zur Aggregationssteuerung aktualisiert die lokale Umgebung, die der Eingabenachricht zugeordnet ist, mit Informationen, die der Knoten zur Aggregationsanforderung benötigt.
    1. Klicken Sie mit der rechten Maustaste auf den Knoten zur Aggregationssteuerung, und wählen Sie Eigenschaften aus.
    2. Legen Sie die Eigenschaft Aggregationsname des Knoten zur Aggregationssteuerung fest, um diese spezielle Aggregation zu identifizieren. Dieser Name wird später für die Zuordnung dieses Knoten zur Aggregationssteuerung zu einem bestimmten Knoten für Aggregationsantworten verwendet. Der von Ihnen angegebene Aggregationsname muss im jeweiligen Kontext innerhalb eines Brokers eindeutig sein.
    3. Optional: Legen Sie die Eigenschaft Zeitlimit fest, um anzugeben, wie lange der Broker auf eingehende Antworten wartet, bevor er eine Maßnahme ergreift (siehe Beschreibung unter Zeitlimits für die Aggregation festlegen).

      Wenn im Knoten zur Aggregationssteuerung kein Zeitlimit festgelegt ist, werden intern gespeicherte Aggregationsanforderungen nicht entfernt, es sei denn, dass alle Aggregationsantwortnachrichten zurückgegeben werden. Dies kann nach und nach zu einem Rückstau von Nachrichten in den internen Warteschlangen führen. Um diese Situation zu vermeiden, sollten Sie für das Zeitlimit einen anderen Wert als Null festlegen (Null bedeutet, dass kein Zeitlimit besteht), damit die Anforderungen bei Ablauf des Zeitlimits entfernt werden und sich die Warteschlangen nicht mit redundanten Anforderungen füllen. Selbst wenn keine Zeitlimits erforderlich sind oder erwartet werden, sollten Sie das Zeitlimit dennoch auf einen sehr großen Wert (z. B. 864000 Sekunden, das entspricht 24 Stunden) setzen, damit die Warteschlangen wenigstens gelegentlich von alten Aggregationen bereinigt werden.

    4. Verbinden Sie das Ausgangsterminal des Knotens zur Aggregationssteuerung mit dem Eingangsterminal eines oder mehrerer Rechenknoten, die die Analyse und Aufsplittung der Anforderung in der Eingabenachricht bereitstellen, die in diesem Terminal weitergegeben wird.
    Anmerkung: Das Steuerterminal des Knotens zur Aggregationssteuerung von Version 6.0 ist veraltet, und standardmäßig werden alle Verbindungen (direkt oder indirekt) von diesem Terminal zum Knoten für Aggregationsantworten 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 Sie jedoch eine Steuernachricht vom Knoten zur Aggregationssteuerung an den Knoten für Aggregationsantworten senden möchten, müssen Sie das Steuerterminal mit dem entsprechenden Knoten für Aggregationsantworten im Sammelnachrichtenfluss verbinden (direkt oder indirekt; siehe Beschreibung unter Aggregations-Verteilungsflüsse und -Sammlungsflüsse zuordnen). Wenn Sie eine indirekte Verbindung zum Knoten für Aggregationsantworten herstellen (beispielsweise über einen MQSendeknoten), müssen Sie einen Rechenknoten einfügen, um der Nachricht die entsprechenden Header hinzuzufügen. Auf diese Weise wird die sichere Übertragung der Nachricht gewährleistet.

    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 extrahiert Informationen aus der Eingabenachricht und konstruiert eine neue Ausgabenachricht.

    Wenn die Zielanwendungen, von denen die Subtask-Anforderungen verarbeitet werden, die benötigten Informationen aus der einzelnen Eingabenachricht extrahieren können, muss kein Rechenknoten zur Teilung der Nachricht eingefügt werden. Sie können die gesamte Eingabenachricht an alle Zielanwendungen übergeben.

    Falls Ihre Zielanwendungen dem Empfang einer einzelnen Anforderung anstelle der gesamten Eingabenachricht erwarten, müssen Sie einen Rechenknoten einfügen, um jede einzelne Subtask-Ausgabenachricht auf Basis der Eingabenachricht zu generieren. Konfigurieren Sie jeden Rechenknoten wie im Folgenden beschrieben, und kopieren Sie die entsprechende Untergruppe der Eingabenachricht in die jeweiligen Ausgabenachrichten.

    1. Klicken Sie mit der rechten Maustaste auf den Rechenknoten, und klicken Sie auf Eigenschaften.
    2. Wählen Sie für die Basiseigenschaft Rechenmodus einen Wert aus. Diese Eigenschaft gibt an, welche Bereiche der Nachrichtenbaumstruktur vom Knoten geändert werden.

      Der Knoten zur Aggregationssteuerung fügt Elemente in die Baumstruktur der lokalen Umgebung in der Eingabenachricht ein, die vom Knoten zur Aggregationsanforderung gelesen werden, sobald die Nachricht diesen erreicht. Vergewissern Sie sich, dass der Eintrag 'LocalEnvironment' im Rechenknoten aus der Eingabenachricht in die Ausgabenachricht kopiert wird. Dies erfolgt automatisch, es sei denn, Sie geben einen Wert an, der die lokale Umgebung enthält (entweder Alle, Lokale Umgebung, Lokale Umgebung und Nachricht oder Ausnahme und lokale Umgebung).

      Wenn Sie einen dieser Werte angeben, geht der Broker davon aus, dass Sie den Rechenknoten mit ESQL-Code anpassen, der in die lokale Umgebung schreibt. Außerdem wird vorausgesetzt, dass Sie Einträge über Elemente in dieser Baumstruktur kopieren, die in der Ausgabenachricht erforderlich sind.

      Falls Sie die lokale Umgebung ändern möchten, fügen Sie die folgende Anweisung hinzu, um die erforderlichen Aggregationsdaten aus der Eingabenachricht in die Ausgabenachricht zu kopieren:

      SET OutputLocalEnvironment.ComIbmAggregateControlNode = 
                  InputLocalEnvironment.ComIbmAggregateControlNode;
    3. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
    4. Verbinden Sie das Ausgangsterminal jedes Rechenknotens mit dem Eingangsterminal des Sendeknotens, der die Zieladresse der Ausgabeanforderungsnachricht darstellt, die Sie auf Basis der Eingabenachricht in diesem Knoten erstellt haben.
    Sendeknoten
    Fügen Sie für jede Ausgabenachricht, die Sie in Ihrem Verteilernachrichtenfluss generieren, einen Sendeknoten (Output) ein. Konfigurieren Sie jeden Knoten wie im Folgenden beschrieben, und zwar mit den entsprechenden Änderungen für jede Zieladresse.

    Hierbei muss es sich um einen Sendeknoten handeln, der das Request/Reply-Modell unterstützt, beispielsweise ein MQSendeknoten oder eine Kombination aus diesen Knoten (dies hängt von den Anforderungen der Zielanwendungen ab).

    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 Ausgabenachrichten an. Geben Sie beispielsweise in der Basiseigenschaft Warteschlangenname den Namen einer WebSphere MQ-Warteschlange an, an die der MQSendeknoten Nachrichten sendet. Die Zielanwendung muss ihre Anforderung verarbeiten und die Antwort an die Antwortzieladresse senden, die in ihrer Eingabenachricht angegeben ist (z. B. die WebSphere MQ Warteschlange für Antwortnachrichten).
    3. Klicken Sie in der linken Ansicht auf 'Anforderung', und legen Sie für diese Eigenschaften Werte fest, um anzugeben, dass Antworten an die Eingabewarteschlange des Sammelnachrichtenflusses gesendet werden sollen.
    4. Optional: Geben Sie für alle Eigenschaften, die für diesen Knoten konfiguriert werden sollen, Werte an.
    5. Verbinden Sie das Ausgangsterminal des Sendeknotens mit dem Eingangsterminal eines Knotens zur Aggregationsanforderung (AggregateRequest). Wenn die Nachricht über das Ausgangsterminal des Sendeknotens weitergegeben wird, aktualisiert der integrierte Sendeknoten den Ordner 'WrittenDestination' in der zugehörigen lokalen Umgebung mit zusätzlichen Informationen, die vom Knoten zur Aggregationsanforderung benötigt werden.

      Bei den Informationen, die von den integrierten Knoten geschrieben werden, handelt es sich um den Namen der Warteschlange und des WS-Managers, die Nachrichten- und Korrelations-ID (des MQMD) sowie um die Nachrichtenantwort-ID (auf denselben Wert wie die Nachrichten-ID gesetzt).

    Knoten zur Aggregationsanforderung
    Fügen Sie für jede Ausgabenachricht, die Sie in Ihrem Verteilernachrichtenfluss generieren, einen Knoten zur Aggregationsanforderung (AggregateRequest) ein.
    1. Klicken Sie mit der rechten Maustaste auf den Sendeknoten, und klicken Sie auf Eigenschaften.
    2. Setzen Sie die Basiseigenschaft Ordnername auf einen Wert, der die Art der gesendeten Anforderung identifiziert. Dieser Wert wird vom Knoten zur Aggregationsanforderung für den Abgleich mit der Antwortnachricht verwendet, wenn sie im Sammelnachrichtenfluss empfangen wird. Der Ordnername, den Sie für jede vom Verteilernachrichtenfluss generierte Anforderung angeben, muss eindeutig sein.

    Der Knoten zur Aggregationsanforderung schreibt für jede von ihm verarbeitete Nachricht einen Datensatz Beginn der Änderungin WebSphere MQEnde der Änderung. Auf diese Weise kann der Knoten zur Aggregationsanforderung identifizieren, welche Anforderung den einzelnen Antworten zugeordnet ist. Wenn Ihre Sendeknoten nicht transaktionsgesteuert sind, geht die Antwortnachricht möglicherweise vor der Festschreibung dieser Datenbankaktualisierung im Sammelnachrichtenfluss ein. Der Abschnitt Zeitlimits für die Aggregation festlegen enthält detaillierte Informationen darüber, wie dies mit Hilfe von Zeitlimits vermieden werden kann.

    ACHTUNG:
    Die Verwendung von Zeitlimits kann zwar dabei helfen, die oben beschriebene Situation zu vermeiden. Sie sollten jedoch sicherstellen, dass Antwortnachrichten nicht in den Sammelnachrichtenfluss gelangen können, bevor die Datenbankaktualisierungen durch die zugehörigen Knoten für Aggregationsanforderungen festgeschrieben wurden. Dies erreichen Sie durch die Verwendung von transaktionalen Verteilernachrichtenflüssen.
  4. Drücken Sie Strg+S, um den Nachrichtenfluss zu speichern und seine Konfiguration zu prüfen.
Informationen zur Erfassung der Aggregationsantworten durch Ihren Verteilernachrichtenfluss und zur Erstellung eines Sammelnachrichtenflusses finden Sie unter Den Aggregations-Sammelnachrichtenfluss erstellen.
Zugehörige Konzepte
Nachrichtenflüsse - Übersicht
Baumstruktur für lokale Umgebung
Nachrichtenfluss-Aggregation
Benutzerdefinierte Empfangsknoten
Benutzerdefinierte Sendeknoten
Zugehörige Tasks
Aggregationsflüsse konfigurieren
Den Aggregations-Sammelnachrichtenfluss erstellen
Verwendung der Steuernachricht in Aggregationsflüssen
Aggregations-Verteilungsflüsse und -Sammlungsflüsse zuordnen
Zeitlimits für die Aggregation festlegen
Mehrere Knoten zur Aggregationssteuerung verwenden
Handhabung von Ausnahmebedingungen in Aggregationsflüssen
Einen Nachrichtenfluss entwerfen
Nachrichtenflüsse erstellen
Nachrichtenflussinhalte definieren
Mehrere Ausgabenachrichten generieren
Benutzerdefinierte Erweiterungen entwickeln
Zugehörige Verweise
Knoten zur Aggregationssteuerung (AggregateControl)
Knoten für Aggregationsantworten (AggregateReply)
Knoten für Aggregationsanforderungen (AggregateRequest)
Rechenknoten (Compute)
MQeEmpfangsknoten (MQeInput)
MQeSendeknoten (MQeOutput)
MQEmpfangsknoten
MQSendeknoten (MQOutput)
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ac12290_