ストリームは、WebSphere® MQ パブリッシュ/サブスクライブ・アプリケーションによって使用される、トピック区分化の方式です。 関連するトピックの集合がグループ化されて、個別のストリームになります。
ストリームを使用すると、トピックのグループごとに異なるセキュリティー管理を適用することができるので、ブローカーがパブリッシュするためのワークロードのバランスが改善されます。
WebSphere Message Broker にはアプリケーションがこれら両方の動作を実行する、より柔軟な制御も備わっていますが、ストリームの概念は MQRFH アプリケーションとの互換性のためにサポートされています。
WebSphere Message Broker では、MQRFH クライアント・アプリケーションが MQPSStreamName コマンド・パラメーターを サブスクリプションおよびパブリケーションで指定できます。 ただし、ストリーム名は、WebSphere MQ パブリッシュ/サブスクライブの区分化特性を保存するためにトピックを変更する目的のみに使用されます。
メッセージに関連したストリーム名が SYSTEM.BROKER.DEFAULT.STREAM 以外に設定される場合、そのメッセージはメッセージ内で言及されたトピックに接頭部としてストリング "$SYS/STREAM/<streamname>/" が付いているものとして処理されます。つまり、ストリーム名 StreamX を指定する Topic1 に対するサブスクリプションは、トピック「$SYS/STREAM/StreamX/Topic1」に対するサブスクリプションであるかのように処理されます。
さらに MQRFH2 パブリッシュおよびサブスクライブ・アプリケーションは、WebSphere Message Broker ブローカーに送信するメッセージでストリーム名を指定することはできませんが、ストリーム関連のトピックをターゲットとすることができます。 この場合、トピックに適切なストリーム接頭部を付ける必要があります。
例えば、WebSphere MQ パブリッシュ/サブスクライブ・ネットワーク内のストリーム STOCK.STREAM にパブリッシュされたトピック IBM/Latest にサブスクライブするために、 MQRFH2 サブスクライバーはトピック $SYS/STREAM/STOCK.STREAM/IBM/Latest を指定する必要があります。
WebSphere MQ パブリッシュ/サブスクライブでは、ストリーム関連のパブリケーションをストリームと同じ名前のキュー だけに送信できます。 しかし WebSphere Message Broker ではパブリッシュ元のクライアントがパブリケーションをメッセージ・フロー内の 任意の入力キューに送信できます。 パブリケーション内のストリーム名パラメーターを指定するために明示的に選択する MQRFH アプリケーションは、それを WebSphere Message Broker ブローカーからサービスを受ける任意のパブリケーション・キューに送信できます。 キューの名前は、ストリームの名前と同じにする必要はありません。 ただし、この動作はパブリケーションを受信する順序に影響を与えることがあります。 このことがアプリケーションにとって重大であるかどうかを検討してください。
各パブリケーション・ノードには暗黙的ストリーム命名 プロパティーがあり、そのデフォルトは true です。 このデフォルト・オプションによって、MQRFH パブリケーションに明示的なストリーム名が含まれない 場合の WebSphere MQ パブリッシュ/サブスクライブでの動作と同じ動作が生じます。 このプロパティーが false で、パブリケーションに明示的な ストリーム名が含まれない場合、ストリーム名として SYSTEM.BROKER.DEFAULT.STREAM が推定されます。
MQRFH パブリッシャー | MQRFH2 パブリッシャー | |||
---|---|---|---|---|
デフォルトのストリーム | StreamX | デフォルトのストリーム | StreamX | |
MQRFH サブスクライバー | S1、P1 | S2、P2 | S1、P3 | S2、P4 |
MQRFH2 サブスクライバー | S3、P1 | S4、P2 | S3、P3 | S4、P4 |
WebSphere MQ パブリッシュ/サブスクライブ・ネットワークでは、ブローカーは、近隣ブローカーと同じストリームのセットをサポートする必要はありません。 ブローカーが近隣ブローカーの 1 つがサポートするストリームをサポートしていない場合、そのストリームに関連したパブリケーションをそのブローカーのクライアントは使用できません。
WebSphere Message Broker ブローカーがネットワークに結合すると、 それは近隣 WebSphere MQ パブリッシュ/サブスクライブ・ブローカーのすべてのストリームをサポートします。 つまり、WebSphere Message Broker ブローカーのクライアントは、近隣 WebSphere MQ パブリッシュ/サブスクライブがサポートするすべてのストリームを パブリケーションの宛先とすることができます。
しかし、これらのパブリケーションを使用可能にするには、WebSphere Message Broker ブローカーにストリーム・キューを定義すること、およびそれらをサポートするメッセージ・フローを定義およびデプロイすることが必要です。
異機種のネットワーク
デフォルトのストリーム・キュー SYSTEM.BROKER.DEFAULT.STREAM は、 WebSphere MQ パブリッシュ/サブスクライブ・ネットワーク内のすべてのブローカーによって常にサポートされていて、 異機種のネットワーク内にあるすべての WebSphere Message Broker ブローカーで定義する必要があります。 各ブローカーでは、このキューにサービスを提供するためのメッセージ・フローを 定義およびデプロイする必要があります。
WebSphere Message Broker ブローカーが WebSphere MQ パブリッシュ/サブスクライブ・ネットワークに組み込まれて、ストリームを共用する 複数の WebSphere MQ パブリッシュ/サブスクライブ・ブローカーがリンクされる場合、 WebSphere Message Broker ブローカーにストリーム・キューを定義すること、 およびそれらにサービスを提供するメッセージ・フローを定義およびデプロイすることが必要です。
たとえば、WebSphere Message Broker ブローカー NEWBROKER には BULLETIN.STREAM に定義されたストリーム・キューが必要です。 さらに、そのキューにパブリケーション・サービスを提供するためにメッセージ・フローが定義およびデプロイされている必要もあります。