Datenströme

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

Anmerkungen zum Subskribenten

S1
Der Subskribent erstellt eine Subskription ohne einen Datenstromnamen oder mit dem Datenstromnamen SYSTEM.BROKER.DEFAULT.STREAM.
S2
Der Subskribent erstellt eine Subskription mit dem Datenstromnamen 'DatenstromX'.
S3
Der Subskribent erstellt eine Subskription für das Thema, ohne '$SYS/STREAM/<Datenstromname>/' hinzuzufügen.
S4
Der Subskribent erstellt eine Subskription für das Thema unter Angabe des Präfix '$SYS/STREAM/DatenstromX/'.

Anmerkungen zum Publisher

P1
Der Publisher veröffentlicht in jeder beliebigen Warteschlange unter Angabe des Datenstromnamens SYSTEM.BROKER.DEFAULT.STREAM, oder er veröffentlicht unter Angabe eines Datenstromnamens in jeder Warteschlange, für die die Eigenschaft Implizite Datenstrombenennung auf 'false' gesetzt ist.
P2
Der Publisher veröffentlicht in jeder beliebigen Warteschlange unter Angabe des Datenstromnamens 'DatenstromX', oder er veröffentlicht unter Angabe eines Datenstromnamens in der Warteschlange 'DatenstromX', für die die Eigenschaft Implizite Datenstrombenennung auf 'true' gesetzt ist.
P3
Der Publisher veröffentlicht in jeder beliebigen Warteschlange, ohne das Präfix '$SYS/STREAM/<Datenstrom>/' zum Thema hinzuzufügen.
P4
Der Publisher veröffentlicht in jeder beliebigen Warteschlange und fügt das Präfix '$SYS/STREAM/DatenstromX/' zum Thema hinzu.
Anmerkung: Das Präfix '$SYS/STREAM/<Datenstromname>/' wird aus allen Themen in einer MQRFH2-Veröffentlichung entfernt, wenn sie an einen MQRFH-Subskribenten geliefert wird.

Datenströme und benachbarte Broker

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.

Die Auswirkungen durch das Hinzufügen eines WebSphere Message Broker-Brokers zu einer WebSphere MQ Publish/Subscribe-Umgebung mit mehreren Datenströmen werden in der folgenden Abbildung veranschaulicht. Der WebSphere Message Broker-Broker NEWBROKER wurde mit den WebSphere MQ Publish/Subscribe-Brokern BROKERA und BROKERB verbunden.

Ein heterogenes Netz

Ein heterogenes Netz. Diese Abbildung zeigt einen <ph conref='edvent.dita#edvent/mqsi'></ph>-Broker mit dem Namen NEWBROKER, der zwischen zwei <ph conref='edvent.dita#edvent/sdk'></ph>-Brokern, BROKERA und BROKERB, platziert wird. Außerdem sind die Datenströme aufgelistet, die jedem der beiden <ph conref='edvent.dita#edvent/sdk'></ph>-Broker zugeordnet sind.

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.

Sie müssen auf dem WebSphere Message Broker-Broker Datenstromwarteschlangen und zugeordnete Nachrichtenflüsse für andere in der Abbildung gezeigte Datenströme nur dann definieren, wenn einer der benachbarten WebSphere MQ Publish/Subscribe-Broker eine Nachricht an eine dieser Warteschlangen senden kann. Eine Nachricht wird bei einem der folgenden Ereignisse gesendet:
  1. Eine Subskription für eine Veröffentlichung in einem dieser Datenströme wird von einem Client des WebSphere Message Broker-Brokers eingerichtet.
  2. Ein Befehl zum Löschen einer Veröffentlichung (DeletePublication) für den Datenstrom wird von einem Client irgendwo im Brokernetz ausgegeben.
Falls Sie nicht ausschließen können, dass die oben genannten Fälle eintreten, erstellen Sie auf dem WebSphere Message Broker-Broker Datenstromwarteschlangen und Nachrichtenflüsse für jeden Datenstrom, der von einem benachbarten WebSphere MQ Publish/Subscribe-Broker unterstützt wird. Andernfalls kann Folgendes passieren:
  • Nachrichten, die von WebSphere MQ Publish/Subscribe-Brokern gesendet werden, werden in die Warteschlange für nicht zustellbare Nachrichten (DLQ) des WebSphere Message Broker-Brokers gestellt, wenn die Datenstromwarteschlange auf diesem Broker nicht vorhanden ist.
  • Nachrichten stauen sich in Datenstromwarteschlangen auf dem WebSphere Message Broker-Broker, wenn die Datenstromwarteschlange zwar vorhanden ist, aber kein Nachrichtenfluss eingesetzt wurde, der sie bedient.

Datenströme und Migration

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.

Zugehörige Tasks
Subskriptionen einrichten
Zugehörige Verweise
MQRFH2-Header
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
aq01180_