Sie definieren einen untergeordneten Nachrichtenfluss, um eine
allgemeine Folge von Aktionen bereitzustellen, die von mehreren Nachrichtenflüssen, Anwendungen
oder Services verwendet werden sollen. Untergeordnete Nachrichtenflüsse können auf dieselbe Weise in
Nachrichtenflüsse eingeschlossen werden wie integrierte oder benutzerdefinierte Knoten.
Untergeordnete Nachrichtenflüsse können auch auf dieselbe Weise mit anderen Knoten verbunden werden.
Ein untergeordneter Nachrichtenfluss bietet folgende Vorteile:
- Wiederverwendung und reduzierte Entwicklungszeit.
- Konsistenz und verbesserte Verwaltung der Nachrichtenflüsse (betrachten Sie einen untergeordneten Fluss wie ein Programmierungsmakro oder Inline-Code, der einmalig geschrieben, aber an mehreren Stellen verwendet wird).
- Flexibilität zur Anpassung eines untergeordneten Nachrichtenflusses an einen bestimmten Kontext (indem beispielsweise die Informationen der Ausgabewarteschlange oder Datenquelle aktualisiert werden).
Es folgen einige Beispiele zur Verwendung eines untergeordneten
Nachrichtenflusses:
- Sie können einen untergeordneten Nachrichtenfluss definieren, der eine allgemeine
Aktionsfolge bereitstellt, die im Fall eines Fehlers für mehrere Nachrichtenflüsse gilt.
So können Sie zum Beispiel eine allgemeine Fehlerroutine verwenden, mit der die Nachricht über den
Datenbank-Knoten in eine Datenbank geschrieben
und zur Verarbeitung durch eine Fehlerbehebungsroutine in eine Warteschlange eingereiht wird. Die Verwendung dieser Routine in mehreren
Nachrichtenflüssen oder an mehreren Stellen in einem Nachrichtenfluss ermöglicht eine effiziente
und konsistente Verwendung von Ressourcen und verhindert, dass solche Routinen bei jedem Auftreten
eines Fehlers erneut erstellt werden.
- Sie möchten vielleicht eine allgemeine Berechnung für Nachrichten durchführen, die mehrere
verschiedene Nachrichtenflüsse durchlaufen. Sie könnten beispielsweise auf Wechselkurse in einer
Datenbank zugreifen und diese zur Berechnung von Preisen in verschiedenen Währungen heranziehen. Der untergeordnete Nachrichtenfluss für die Währungsberechnung kann in jeden
Nachrichtenfluss eingefügt werden, für den er sich eignet.
Weitere Informationen zu untergeordneten Nachrichtenflüssen finden Sie im Szenario ../com.ibm.scenarios.doc/UnderstandingSubflows/topics/scnsubflows_01_11_.htm.
Typen untergeordneter Nachrichtenflüsse
Ein untergeordneter
Nachrichtenfluss wird einmal definiert und dann in mehreren Nachrichtenflüssen, Anwendungen,
Services oder Nachrichtenbrokerprojekten
verwendet. Sie definieren den Inhalt eines untergeordneten Nachrichtenflusses auf dieselbe Weise
wie den Inhalt eines Nachrichtenflusses, nämlich indem Sie Nachrichtenflussknoten hinzufügen,
konfigurieren und verbinden.
Anmerkung: Zur Ausführungszeit erstellt jede Instanz eines
untergeordneten Nachrichtenflusses eine Kopie von allen Nachrichtenflussknoten, die in der
Definition des untergeordneten Nachrichtenflusses angegeben sind. Dies hat Auswirkung auf die
Ressourcennutzung, was sich wiederum auf die Gesamtleistung des Nachrichtenflusses auswirken
kann.
Sie können einen untergeordneten Nachrichtenfluss als
.subflow-Datei oder als
.msgflow-Datei erstellen. Wählen Sie den Typ des untergeordneten Nachrichtenflusses auf
Basis der folgenden Informationen aus:
- Ein untergeordneter Nachrichtenfluss, der in einer .subflow-Datei
definiert ist, kann auf eine der folgenden Arten implementiert werden:
- Separat von jedem der Nachrichtenflüsse, die diesen untergeordneten Nachrichtenfluss verwenden.
Der untergeordnete Nachrichtenfluss und die Nachrichtenflüsse, die diesen untergeordneten
Nachrichtenfluss einschließen, müssen in derselben Ausführungsgruppe in einem Broker implementiert
werden. Der untergeordnete Nachrichtenfluss kann direkt in einer Ausführungsgruppe in einem Broker
oder als Teil einer Bibliothek implementiert werden. Wenn Sie diesen Typ von untergeordnetem
Nachrichtenfluss aktualisieren und erneut implementieren, werden alle Nachrichtenflüsse, die den
untergeordneten Nachrichtenfluss verwenden und nicht Teil einer Anwendung oder eines Service sind,
automatisch aktualisiert. Sie müssen diese Nachrichtenflüsse nicht erneut implementieren.
- Als Teil einer Anwendung oder eines Service.
- Folgende Knoten können in diesem untergeordneten Nachrichtenfluss nicht verwendet werden:
- Knoten, die untergeordnete Nachrichtenflüsse darstellen, die in .msgflow-Dateien definiert sind
- Benutzerdefinierte Knoten, die auf Basis von untergeordneten Nachrichtenflüssen erstellt werden, die in .msgflow-Dateien definiert sind
- MQOptimizedFlow-Knoten
- Wenn Sie eine BAR-Datei erstellen, die sowohl ESQL-Code als auch einen in einer .subflow-Datei definierten untergeordneten Nachrichtenfluss enthält, kann der ESQL-Code nicht direkt in kompilierte Nachrichtenflussdateien eingefügt werden.
- Ein untergeordneter Nachrichtenfluss, der in einer .msgflow-Datei
definiert ist, wird in dem Moment in einen übergeordneten Nachrichtenfluss, von dem er verwendet
wird, eingebettet, wenn dieser in eine BAR-Datei gestellt wird. Dieser Typ von untergeordnetem
Nachrichtenfluss kann daher nur zusammen mit dem Nachrichtenfluss, in dem er verwendet wird, auf
einem Broker implementiert werden.
- Wenn Sie diesen Typ von
untergeordnetem Nachrichtenfluss aktualisieren, müssen Sie alle Nachrichtenflüsse, die den
untergeordneten Nachrichtenfluss verwenden, erneut implementieren, damit die Änderungen wirksam
werden.
- Dieser Typ von untergeordnetem Nachrichtenfluss kann als benutzerdefinierter Knoten gepackt
werden.
Bedingungen für die Konvertierung eines untergeordneten Nachrichtenflusses von
.msgflow nach .subflow und umgekehrt
Ein
untergeordneter Nachrichtenfluss, der als
.msgflow-Datei erstellt wird, kann in
eine
.subflow-Datei konvertiert werden.
- Enthält die .msgflow-Datei untergeordnete Nachrichtenflüsse, die als
.msgflow-Dateien definiert sind, müssen diese untergeordneten Nachrichtenflüsse
ebenfalls in .subflow-Dateien konvertiert werden.
- Falls die .msgflow-Datei als untergeordneter Nachrichtenfluss verwendet
wird, muss auch der übergeordnete Nachrichtenfluss aktualisiert werden, sodass er auf die neue
.subflow-Datei verweist.
Sie können einen untergeordneten
Nachrichtenfluss, der als
.subflow-Datei erstellt wurde, in eine
.msgflow-Datei konvertieren.
- Sie können nicht den Namen einer Datei verwenden, die bereits in der Anwendung, der Bibliothek
oder dem Nachrichtenbrokerprojekt vorhanden ist, in der bzw. dem Sie einen untergeordneten
Nachrichtenfluss als .msgflow-Datei erstellen. Sie müssen
.msgflow an das Ende des Dateinamens für den untergeordneten Nachrichtenfluss
anhängen.
Bedingungen für die Hinzufügung eines untergeordneten Nachrichtenflusses zu einem
Nachrichtenfluss
Untergeordnete Nachrichtenflüsse können zu einem Nachrichtenfluss
hinzugefügt werden, wenn eine der folgenden Aussagen zutrifft:
Bedingungen für die Hinzufügung eines untergeordneten Nachrichtenflusses zu einem
untergeordneten Nachrichtenfluss
Untergeordnete Nachrichtenflüsse können in folgenden
Fällen zu einem untergeordneten Nachrichtenfluss hinzugefügt werden:
- Untergeordnete Nachrichtenflüsse, die in .subflow-Dateien definiert sind,
können zu untergeordneten Nachrichtenflüssen hinzugefügt werden, die in
.subflow- und in .msgflow-Dateien definiert sind.
- Untergeordnete Nachrichtenflüsse, die in .msgflow-Dateien definiert sind,
können zu untergeordneten Nachrichtenflüssen hinzugefügt werden, die nur in
.msgflow-Dateien definiert sind.
Bedingungen für die Implementierung eines untergeordneten
Nachrichtenflusses
Sie können untergeordnete Nachrichtenflüsse auf folgende Arten
implementieren:
- Implementieren Sie einen untergeordneten Nachrichtenfluss als unabhängige Ressource, die in
einem Nachrichtenbrokerprojekt definiert ist.
- Implementieren Sie einen untergeordneten Nachrichtenfluss als Teil eines Anwendungsprojekts.
- Implementieren Sie einen untergeordneten Nachrichtenfluss als Teil einer Serviceoperation.
- Implementieren Sie einen untergeordneten Nachrichtenfluss als Teil einer
Bibliothek.
Sie implementieren einen untergeordneten Nachrichtenfluss in einer
Ausführungsgruppe, indem Sie eine Brokerarchivdatei (BAR-Datei) an eine Ausführungsgruppe in einem
Broker senden, der den Inhalt entpackt und speichert, sodass er beim Start der Nachrichtenflüsse
bereitsteht.
Für die Implementierung eines untergeordneten Nachrichtenflusses als Teil einer
Integrationslösung gelten folgende Bedingungen:
- Wenn Sie einen Nachrichtenfluss implementieren, der einen in einer
.subflow-Datei definierten untergeordneten Nachrichtenfluss enthält, wird der
untergeordnete Nachrichtenfluss automatisch in die BAR-Datei eingeschlossen.
- Wenn Sie einen untergeordneten Nachrichtenfluss implementieren, der in einer Anwendung
enthalten ist, müssen Sie die Anwendung in einer Ausführungsgruppe implementieren, was eine
vollständige Implementierung der Anwendung zur Folge hat.
- Wenn Sie einen untergeordneten Nachrichtenfluss implementieren, der in einem Service enthalten
ist, müssen Sie den Service in einer Ausführungsgruppe implementieren, was eine vollständige
Implementierung des Service zur Folge hat.
- Wenn Sie einen untergeordneten Nachrichtenfluss implementieren, der in einer Bibliothek
enthalten ist, können Sie die Bibliothek direkt in einer Ausführungsgruppe implementieren, d. h.
außerhalb einer Anwendung oder eines Service. Andere Nachrichtenflüsse und untergeordnete
Nachrichtenflüsse, die direkt als Bibliothek in derselben Ausführungsgruppe implementiert sind,
können dann auf den in der Bibliothek enthaltenen untergeordneten Nachrichtenfluss verweisen.
- Ein untergeordneter Nachrichtenfluss, der als .msgflow-Datei in einem
Nachrichtenbrokerprojekt erstellt wird, kann nur als separate Ressource implementiert werden, wenn
er mindestens einen Empfangsknoten enthält.
Versionssteuerung
Verwenden Sie den
Passthrough-Knoten, um die Versionssteuerung eines
untergeordneten Nachrichtenflusses zur Ausführungszeit zu aktivieren.
Durch Hinzufügen eines
Passthrough-Knotens können Sie dem Nachrichtenfluss
bzw. dem untergeordneten Nachrichtenfluss eine Bezeichnung hinzufügen. Wenn Sie diese Bezeichnung mit der
Schlüsselwortersetzung aus Ihrem System zur Versionssteuerung kombinieren, können Sie ermitteln,
welche Version eines untergeordneten Nachrichtenflusses in einen implementierten Nachrichtenfluss
eingefügt wurde.
Sie können diese Bezeichnung für Ihre eigenen Zwecke verwenden. Wenn Sie die richtigen
Versionsschlüsselwörter in die Bezeichnung eingefügt haben, können Sie den Wert der Bezeichnung an
folgenden Stellen sehen:
- Indem Sie mit dem Befehl mqsireadbar die in der
Brokerarchivdatei (BAR-Datei) gespeicherten Eigenschaften lesen.
- Im WebSphere Message
Broker Toolkit in den Eigenschaften eines implementierten
Nachrichtenflusses, so wie er zuletzt auf einem bestimmten Broker implementiert wurde.
- In der Laufzeitumgebung, wenn Sie den Benutzertrace für den Nachrichtenfluss
aktivieren.
Bei untergeordneten Nachrichtenflüssen, die als
.subflow-Datei erstellt werden, müssen Sie bei der Implementierung einer neuen
Version eines untergeordneten Nachrichtenflusses das folgende Verhalten berücksichtigen:
- Wenn der untergeordnete Nachrichtenfluss von einem der Nachrichtenflüsse, die ihn verwenden,
separat implementiert wird und Sie eine neue Version des untergeordneten Nachrichtenflusses
implementieren, werden alle Nachrichtenflüsse automatisch aktualisiert.
- Wenn der untergeordnete Nachrichtenfluss als Teil einer Anwendung oder eines Service
implementiert wird, müssen Sie Ihre Anwendungen und Services aktualisieren, um die neue Version des
untergeordneten Nachrichtenflusses einzuschließen, und sie dann erneut
implementieren.
Bei untergeordneten Nachrichtenflüssen, die als
.msgflow-Datei erstellt werden, müssen Sie bei der Implementierung einer neuen
Version eines untergeordneten Nachrichtenflusses das folgende Verhalten berücksichtigen:
- Sie müssen Ihre Anwendungen, Services und unabhängigen Ressourcen, die den untergeordneten
Nachrichtenfluss verwenden, aktualisieren, um die neue Version des untergeordneten
Nachrichtenflusses einzuschließen, und sie dann erneut implementieren.
Beispiele
Die Verwendung
von untergeordneten Nachrichtenflüssen wird in den folgenden Beispielen veranschaulicht:
Das Fehlerbehandlungsprogramm verwendet einen untergeordneten Nachrichtenfluss zum Abfangen von Fehlerinformationen und Speichern der Informationen in einer Datenbank. Das Programm 'Koordinierte Anforderungsantwort' verwendet einen untergeordneten Nachrichtenfluss zur Einbindung des Speichers der
ReplyToQ- und
ReplyToQMgr-Werte in einer
WebSphere MQ-Nachricht, sodass die Verarbeitungslogik in anderen Nachrichtenflüssen wieder verwendet werden kann und die Substitution alternativer Implementierungen möglich ist.
Informationen zu Beispielen können nur bei Verwendung des in das WebSphere Message
Broker Toolkit integrierten bzw. online verfügbaren Information Center angezeigt werden. Muster können nur ausgeführt werden, wenn das im
WebSphere Message
Broker Toolkit integrierte Information Center verwendet wird.