Ein Datenstrom ist eine von WebSphere MQ Publish/Subscribe-Anwendungen eingesetzte Methode zum Partitionieren von Themen. Gruppen mit verwandten Themen werden in separaten Datenströmen zusammengefasst.
Durch die Verwendung von Datenströmen können unterschiedliche Sicherheitseinstellungen auf unterschiedliche Themengruppen angewendet und kann die Auslastung des Brokers für Veröffentlichungen besser verteilt werden.
Obwohl WebSphere Message Broker für Anwendungen andere Möglichkeiten bietet, um diese Ziele zu erreichen, wird das Datenstromkonzept aus Gründen der Kompatibilität mit MQRFH-Anwendungen unterstützt.
WebSphere Message Broker ermöglicht es MQRFH-Clientanwendungen, den Befehlsparameter MQPSStreamName in ihren Subskriptionen und Veröffentlichungen anzugeben. Der Datenstromname wird jedoch nur zum Ändern des Themas verwendet, um das Partitionierungsmerkmal von WebSphere MQ Publish/Subscribe zu erhalten.
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 das Thema 'Thema1', das den Datenstromnamen 'DatenstromX' angibt, so verarbeitet, als wäre die Subskription für das Thema '$SYS/STREAM/DatenstromX/Thema1' eingerichtet worden.
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, in der Veröffentlichungen empfangen werden, beeinflussen. 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 (wahr) gesetzt wird. Diese Standardoption hat ein Verhalten zur Folge, dass mit dem in WebSphere MQ Publish/Subscribe identisch ist, wenn eine MQRFH-Veröffentlichung keinen expliziten Datenstromnamen enthält. Wenn diese Eigenschaft auf false (falsch) 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 einsetzen.
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 einsetzen, 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 einsetzen.
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 eingesetzt 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 eingesetzt haben, die alle diese Datenströme verarbeiten.