Bei einem Datenstrom handelt es sich um eine Methode zur Partitionierung von Themen, die von WebSphere MQ Publish/Subscribe-Anwendungen verwendet wird. Dabei werden Gruppen von zusammengehörigen Themen in getrennten Datenströmen gruppiert.
Durch die Verwendung von Datenströmen können verschiedene Sicherheitsmaßnahmen für verschiedene Themengruppen angewendet werden, und die Auslastung bei der Veröffentlichung kann einfacher verteilt werden.
Obwohl von WebSphere Message Broker für eine Anwendung andere Möglichkeiten zum Erreichen dieses Verhaltens zur Verfügung gestellt werden, wird das Konzept der Datenströme für die Kompatibilität mit MQRFH-Anwendungen unterstützt.
Durch WebSphere Message Broker wird in den Subskriptionen und Veröffentlichungen von MQRFH-Clientanwendungen die Angabe eines MQPSStreamName-Befehlsparameters ermöglicht. Der Name des Datenstroms wird jedoch nur zum Ändern des Themas verwendet, um die Merkmale der Partitionierung von WebSphere MQ Publish/Subscribe beizubehalten.
Wenn der Name eines Datenstroms, der einer Nachricht zugeordnet ist, nicht SYSTEM.BROKER.DEFAULT.STREAM lautet, wird die Nachricht so verarbeitet, wie wenn das in der Nachricht erwähnte Thema (bzw. die Themen) als Präfix die Zeichenfolge '$SYS/STREAM/<Datenstromname>/' aufweist. Beispielsweise wird eine Subskription für Thema1, durch das der Datenstromname 'DatenstromX' angegeben wird, verarbeitet, wie wenn die Subskription für das Thema '$SYS/STREAM/DatenstromX/Thema1' wäre.
Veröffentlichende und subskribierende MQRFH2-Anwendungen können ebenfalls datenstrombezogene Themen adressieren, auch wenn sie selbst in den Nachrichten, die sie an den WebSphere Message Broker-Broker senden, keinen Datenstromnamen angeben können. Zu diesem Zweck müssen sie die Themen mit dem geeigneten Datenstrompräfix versehen.
Beispielsweise muss ein MQRFH2-Subskribent das Thema '$SYS/STREAM/STOCK.STREAM/IBM/Latest' angeben, um das Thema 'IBM/Latest', das im Datenstrom STOCK.STREAM innerhalb des WebSphere MQ Publish/Subscribe-Netzes veröffentlicht wird, zu subskribieren.
Bei WebSphere MQ Publish/Subscribe kann eine datenstrombezogene Veröffentlichung nur an eine Warteschlange gesendet werden, die denselben Namen wie der Datenstrom hat. Dagegen lässt WebSphere Message Broker zu, dass veröffentlichende Clients ihre Veröffentlichungen an jede beliebige Warteschlange in einem Nachrichtenfluss senden. MQRFH-Anwendungen, die in einer Veröffentlichung explizit einen Datenstromnamen als Parameter angeben, können diese Veröffentlichung an jede Veröffentlichungswarteschlange senden, die vom WebSphere Message Broker-Broker bedient wird. Der Name der Warteschlange muss nicht mit dem Namen des Datenstroms übereinstimmen. Diese Vorgehensweise kann jedoch die Reihenfolge beeinflussen, in der Veröffentlichungen empfangen werden. Prüfen Sie, ob dies für Ihre Anwendungen von Bedeutung ist.
Jeder Veröffentlichungsknoten hat die Eigenschaft Implizite Datenstrombenennung, die standardmäßig auf true gesetzt wird. Diese Standardoption hat ein Verhalten zur Folge, das mit dem in WebSphere MQ Publish/Subscribe identisch ist, wenn eine MQRFH-Veröffentlichung keinen expliziten Datenstromnamen enthält. Wenn diese Eigenschaft auf false gesetzt ist und die Veröffentlichung keinen expliziten Datenstromnamen enthält, wird SYSTEM.BROKER.DEFAULT.STREAM angenommen.
In der folgenden Tabelle sind die Optionen aufgeführt, die sowohl für MQRFH- als auch für MQRFH2-Clientanwendungen, die Nachrichten veröffentlichen, verfügbar sind; die Tabelle zeigt die Optionen für den Standarddatenstrom und für einen Beispieldatenstrom mit dem Namen DatenstromX.
MQRFH-Publisher | MQRFH2-Publisher | |||
---|---|---|---|---|
Standarddatenstrom | DatenstromX | Standarddatenstrom | DatenstromX | |
MQRFH-Subskribent | S1,P1 | S2,P2 | S1,P3 | S2,P4 |
MQRFH2-Subskribent | S3,P1 | S4,P2 | S3,P3 | S4,P4 |
In einem WebSphere MQ Publish/Subscribe-Netz muss ein Broker nicht dieselbe Gruppe von Datenströmen unterstützen wie seine benachbarten Broker. Wenn ein Broker einen Datenstrom, der von einem seiner Nachbarn unterstützt wird, nicht unterstützt, stehen Veröffentlichungen, die diesem Datenstrom zugeordnet sind, für Clients des betreffenden Brokers nicht zur Verfügung.
Wenn ein WebSphere Message Broker-Broker mit dem Netz verbunden wird, unterstützt er alle Datenströme seiner benachbarten WebSphere MQ Publish/Subscribe-Broker. Das heißt, dass Clients des WebSphere Message Broker-Brokers Veröffentlichungen für jeden Datenstrom herausgeben können, der von einem seiner WebSphere MQ Publish/Subscribe-Nachbarn unterstützt wird.
Um diese Veröffentlichungen zur Verfügung zu stellen, müssen Sie jedoch die Datenstromwarteschlangen definieren, und Sie müssen die Nachrichtenflüsse, die diese Warteschlangen unterstützen, auf dem WebSphere Message Broker-Broker definieren und implementieren.
Ein heterogenes Netz
Die standardmäßige Datenstromwarteschlange SYSTEM.BROKER.DEFAULT.STREAM wird immer von allen Brokern in einem WebSphere MQ Publish/Subscribe-Netz unterstützt und muss auf jedem WebSphere Message Broker-Broker in einem heterogenen Netz definiert werden. Sie müssen auf jedem Broker einen Nachrichtenfluss definieren und implementieren, der diese Warteschlange bedient.
Wenn ein WebSphere Message Broker-Broker in ein WebSphere MQ Publish/Subscribe-Netz integriert wird und zwei oder mehr WebSphere MQ Publish/Subscribe-Broker verbindet, die gemeinsame Datenströme verwenden, müssen Sie die gemeinsamen Datenstromwarteschlangen definieren und die Nachrichtenflüsse, die diese Warteschlangen bedienen, auf dem WebSphere Message Broker-Broker definieren und implementieren.
Beispielsweise muss auf dem WebSphere Message Broker-Broker NEWBROKER eine Datenstromwarteschlange für BULLETIN.STREAM definiert werden. Darüber hinaus muss ein Nachrichtenfluss definiert und implementiert werden, der einen Veröffentlichungsdienst für die Warteschlange bereitstellt.
Bei der Migration eines WebSphere MQ Publish/Subscribe-Brokers zu einem WebSphere Message Broker-Broker (mit dem Befehl migmqbrk) werden die Datenströme, die zum Zeitpunkt der Migration unterstützt werden, exakt auf dem WebSphere Message Broker-Broker repliziert. Anschließende Änderungen sind nicht möglich, d. h., zu dieser replizierten Gruppe können weder Datenströme hinzugefügt noch können Datenströme aus ihr entfernt werden. Die Migration ist erst abgeschlossen, nachdem Sie Nachrichtenflüsse erstellt und implementiert haben, die alle diese Datenströme verarbeiten.