ストリーム

ストリームは、WebSphere® MQ パブリッシュ/サブスクライブ・アプリケーションによって使用される、トピック区分化の方式です。 関連するトピックの集合がグループ化されて、個別のストリームになります。

ストリームを使用すると、トピックのグループごとに異なるセキュリティー管理を適用することができるので、ブローカーがパブリッシュするためのワークロードのバランスが改善されます。

WebSphere Event Broker にはアプリケーションがこれら両方の動作を実行する、より柔軟な制御も備わっていますが、ストリームの概念は MQRFH アプリケーションとの互換性のためにサポートされています。

WebSphere Event Broker では、MQRFH クライアント・アプリケーションが MQPSStreamName コマンド・パラメーターを サブスクリプションおよびパブリケーションで指定できます。 ただし、ストリーム名は、WebSphere MQ パブリッシュ/サブスクライブの区分化特性を保存するためにトピックを変更する目的のみに使用されます。

メッセージに関連したストリーム名が SYSTEM.BROKER.DEFAULT.STREAM 以外に設定される場合、そのメッセージはメッセージ内で言及されたトピックに接頭部としてストリング "$SYS/STREAM/<streamname>/" が付いているものとして処理されます。つまり、ストリーム名 StreamX を指定する Topic1 に対するサブスクリプションは、トピック「$SYS/STREAM/StreamX/Topic1」に対するサブスクリプションであるかのように処理されます。

さらに MQRFH2 パブリッシュおよびサブスクライブ・アプリケーションは、WebSphere Event Broker ブローカーに送信するメッセージでストリーム名を指定することはできませんが、ストリーム関連のトピックをターゲットとすることができます。 この場合、トピックに適切なストリーム接頭部を付ける必要があります。

例えば、WebSphere MQ パブリッシュ/サブスクライブ・ネットワーク内のストリーム STOCK.STREAM にパブリッシュされたトピック IBM/Latest にサブスクライブするために、 MQRFH2 サブスクライバーはトピック $SYS/STREAM/STOCK.STREAM/IBM/Latest を指定する必要があります。

WebSphere MQ パブリッシュ/サブスクライブでは、ストリーム関連のパブリケーションをストリームと同じ名前のキュー だけに送信できます。 しかし WebSphere Event Broker ではパブリッシュ元のクライアントがパブリケーションをメッセージ・フロー内の 任意の入力キューに送信できます。 パブリケーション内のストリーム名パラメーターを指定するために明示的に選択する MQRFH アプリケーションは、それを WebSphere Event Broker ブローカーからサービスを受ける任意のパブリケーション・キューに送信できます。 キューの名前は、ストリームの名前と同じにする必要はありません。 ただし、この動作はパブリケーションを受信する順序に影響を与えることがあります。 このことがアプリケーションにとって重大であるかどうかを検討してください。

各パブリケーション・ノードには暗黙的ストリーム命名 プロパティーがあり、そのデフォルトは true です。 このデフォルト・オプションによって、MQRFH パブリケーションに明示的なストリーム名が含まれない 場合の WebSphere MQ パブリッシュ/サブスクライブでの動作と同じ動作が生じます。 このプロパティーが false で、パブリケーションに明示的な ストリーム名が含まれない場合、ストリーム名として SYSTEM.BROKER.DEFAULT.STREAM が推定されます。

メッセージをパブリッシュする MQRFH および MQRFH2 の両方のクライアント・アプリケーション で使用可能なオプションを、以下の表に示します。 この表では、デフォルトのストリームのオプション、および StreamX という名前のストリーム例のオプションを示します。
  MQRFH パブリッシャー MQRFH2 パブリッシャー
  デフォルトのストリーム StreamX デフォルトのストリーム StreamX
MQRFH サブスクライバー S1、P1 S2、P2 S1、P3 S2、P4
MQRFH2 サブスクライバー S3、P1 S4、P2 S3、P3 S4、P4

サブスクライバーの注記

S1
サブスクライバーは、ストリーム名なしか、またはストリーム名 SYSTEM.BROKER.DEFAULT.STREAM でサブスクライブします。
S2
サブスクライバーは、ストリーム名 StreamX でサブスクライブします。
S3
サブスクライバーは、$SYS/STREAM/<streamname>/ を追加しないでトピックにサブスクライブします。
S4
サブスクライバーは、$SYS/STREAM/StreamX/ のある接頭部トピックにサブスクライブします。

パブリッシャーの注記

P1
パブリッシャーは、ストリーム名 SYSTEM.BROKER.DEFAULT.STREAM を指定して任意のキューにパブリッシュするか、 またはストリーム名を指定しないで「暗黙的ストリーム命名」 プロパティーが「false」に設定された任意のキューにパブリッシュします。
P2
パブリッシャーは、ストリーム名 StreamX を指定して任意のキューにパブリッシュするか、 またはストリーム名を指定しないで「暗黙的ストリーム命名」 プロパティーが「true」に設定されたキュー StreamX にパブリッシュします。
P3
パブリッシャーは、接頭部 $SYS/STREAM/<Stream>/ をトピックに追加しないで任意のキューにパブリッシュします。
P4
パブリッシャーは、接頭部 $SYS/STREAM/StreamX/ をトピックに追加して任意のキューにパブリッシュします。
注: $SYS/STREAM/<streamname>/ 接頭部は、MQRFH2 パブリケーションが MQRFH サブスクライバーに配送されるとき、そのすべてのトピックから除去されます。

ストリームおよび近隣ブローカー

WebSphere MQ パブリッシュ/サブスクライブ・ネットワークでは、ブローカーは、近隣ブローカーと同じストリームのセットをサポートする必要はありません。 ブローカーが近隣ブローカーの 1 つがサポートするストリームをサポートしていない場合、そのストリームに関連したパブリケーションをそのブローカーのクライアントは使用できません。

WebSphere Event Broker ブローカーがネットワークに結合すると、 それは近隣 WebSphere MQ パブリッシュ/サブスクライブ・ブローカーのすべてのストリームをサポートします。 つまり、WebSphere Event Broker ブローカーのクライアントは、近隣 WebSphere MQ パブリッシュ/サブスクライブがサポートするすべてのストリームを パブリケーションの宛先とすることができます。

しかし、これらのパブリケーションを使用可能にするには、WebSphere Event Broker ブローカーにストリーム・キューを定義すること、およびそれらをサポートするメッセージ・フローを定義およびデプロイすることが必要です。

WebSphere Event Broker ブローカーをマルチストリームの WebSphere MQ パブリッシュ/サブスクライブ環境に追加することの効果は、以下の図で例示されています。 WebSphere Event Broker ブローカーの NEWBROKER を使用して、WebSphere MQ パブリッシュ/サブスクライブ・ブローカーの BROKERA および BROKERB が結合されています。

異機種のネットワーク

異機種ネットワーク。この図では、<ph conref='edvent.dita#edvent/mqsi'></ph> ブローカー NEWBROKER が、2 つの <ph conref='edvent.dita#edvent/sdk'></ph> ブローカー BROKERA および BROKERB の間に配置されています。それはまた、2 つの <ph conref='edvent.dita#edvent/sdk'></ph> ブローカーの各々に関連付けられたストリームをリストしています。

デフォルトのストリーム・キュー SYSTEM.BROKER.DEFAULT.STREAM は、 WebSphere MQ パブリッシュ/サブスクライブ・ネットワーク内のすべてのブローカーによって常にサポートされていて、 異機種のネットワーク内にあるすべての WebSphere Event Broker ブローカーで定義する必要があります。 各ブローカーでは、このキューにサービスを提供するためのメッセージ・フローを 定義およびデプロイする必要があります。

WebSphere Event Broker ブローカーが WebSphere MQ パブリッシュ/サブスクライブ・ネットワークに組み込まれて、ストリームを共用する 複数の WebSphere MQ パブリッシュ/サブスクライブ・ブローカーがリンクされる場合、 WebSphere Event Broker ブローカーにストリーム・キューを定義すること、 およびそれらにサービスを提供するメッセージ・フローを定義およびデプロイすることが必要です。

たとえば、WebSphere Event Broker ブローカー NEWBROKER には BULLETIN.STREAM に定義されたストリーム・キューが必要です。 さらに、そのキューにパブリケーション・サービスを提供するためにメッセージ・フローが定義およびデプロイされている必要もあります。

近隣 WebSphere MQ パブリッシュ/サブスクライブの 1 つがこれらのキューの 1 つにメッセージを送信できる場合に限り、ストリーム・キューおよび関連したメッセージ・フローを 図に示された他のストリームの WebSphere Event Broker ブローカーに定義する必要があります。 以下のイベントのいずれかが生じた場合に、メッセージが送信されます。
  1. これらのストリームの 1 つに存在するパブリケーションに対するサブスクリプションは、WebSphere Event Broker ブローカーのクライアントによって登録されます。
  2. ストリームのための DeletePublication コマンドは、ブローカー・ネットワーク内のどこかに存在するクライアントによって出されます。
上記の事柄が生じるかどうかが不確かな場合は、近隣 WebSphere MQ パブリッシュ/サブスクライブによってサポートされている すべてのストリームに対して WebSphere Event Broker ブローカー内にストリーム・キューおよびメッセージ・フローを作成します。 これを行わない場合、以下の事柄が生じる可能性があります。
  • ストリーム・キューがそのブローカーに存在しない場合、WebSphere MQ パブリッシュ/サブスクライブ・ブローカーから送られたメッセージは WebSphere Event Broker ブローカーのデッド・レター・キュー (DLQ) に入れられます。
  • ストリーム・キューが存在してもそれにサービスを提供するメッセージ・フローがデプロイされていない場合、メッセージは WebSphere Event Broker ブローカー上のストリーム・キューに溜まります。

ストリームとマイグレーション

WebSphere MQ パブリッシュ/サブスクライブ・ブローカーが WebSphere Event Broker ブローカーに (migmqbrk コマンドを使用して) マイグレーションされるとき、 マイグレーションの際にサポートされているストリームは WebSphere Event Broker ブローカー内に正確に複製されます。

その後に変更を行うことはできません。 つまり、この複製されたセットにストリームを追加したりそこからストリームを除去することはできません。

これらのストリームすべてを処理するメッセージ・フローを作成してデプロイするまで、マイグレーションは完了しません。

関連資料
MQRFH2 ヘッダー
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009. All Rights Reserved.
最終更新 : 2009-02-13 10:23:40

aq01180_