マルチキャスト・ブローカーの設定

ブローカーでマルチキャスト要求を処理できるようにするには、以下のようにします。

  1. 「ブローカー管理 (Broker Administration)」パースペクティブに切り替えます。
  2. 「ドメイン (Domains)」ビューで、「ブローカー・トポロジー (Broker Topology)」オブジェクトをダブルクリックします。
  3. ブローカー・トポロジー・エディターで、変更するブローカーを右クリックします。
  4. プロパティーをクリックして、「マルチキャスト (Multicast)」を右クリックします。 他の選択項目は、「説明 (Description)」と、 「ブローカー (Broker)」です。
  5. 「マルチキャストが使用可能 (Multicast Enabled)」ボックスをチェックします。
  6. 「OK」をクリックします。
  7. ブローカーを再始動してください。変更を有効にするためにはそうすることが必要です。

マルチキャストを使用する前に、 マルチキャストであることが可能なトピックを定義する必要があります。

個々のトピックまたはトピックのグループをマルチキャストできるようにするには、 トピック階層に変更を加える必要があります。
  1. 「ドメイン (Domains)」ビューで、「トピック (Topics)」オブジェクトをダブルクリックします。
  2. トピック階層エディターで、マルチキャストできるようにするトピックまたはトピックのグループを右クリックします。
  3. プロパティーをクリックして、「マルチキャスト (Multicast)」を右クリックします。
  4. 必要な「マルチキャストが使用可能 (Multicast Enabled) 」を選択します。

    トピック・ルートに関しては、 選択は「使用可能 (Enabled)」「使用不可 (Disabled)」です。 デフォルトは、「使用不可 (Disabled)」です。

    子ルート・トピックの場合、 選択は「継承 (Inherit)」「使用可能 (Enabled)」、 または「使用不可 (Disabled)」です。 デフォルトは「継承 (Inherit)」です。

  5. 「自動マルチキャスト・アドレス」ボックスにチェックマークを付けるか、 MC グループ・アドレスの名前を入力します。
  6. 必要なサービス品質を選択します。 選択項目は、「信頼できる (Reliable)」か、 「信頼できない (Unreliable)」です。 デフォルトは「信頼できる (Reliable)」です。
  7. オプション: 「暗号化 (Encrypted)」ボックスをチェックします。
  8. オプション: 下記のプロパティーを変更します。変更されないプロパティーでは、 デフォルト値が使用されます。
    最小アドレス (Min Address)
    ブローカーがマルチキャスト伝送のために使用できる最小 IP アドレス。

    これは、224.0.0.0 から 239.255.255.255 の範囲になります。 デフォルト値は 224.0.0.0 です。

    最大アドレス (Max Address)
    ブローカーがマルチキャスト伝送のために使用できる最大 IP アドレス。

    これは、224.0.0.0 から 239.255.255.255 の範囲になります。 デフォルト値は 239.255.255.255 です。

    データ・ポート (Data Port)
    マルチキャスト・パケットの送受信に使用される UDP データ・ポート。

    デフォルト値は 34343 です。

    ブローカー・パケット・サイズ (Broker Packet Size)
    マルチキャスト・パケットのサイズ (バイト単位)。

    500 から 32000 の範囲になります。 デフォルト値は 7000 です。

    ブローカー・ハートビート・タイムアウト (Broker Heartbeat Timeout)
    ブローカーは、各クライアントに制御パケットを周期的に (だいたい 1 秒に 1 つ) 送信します。 このパケットは、さまざまな制御情報を送信し、ハートビートを維持するために使用されます。 ハートビート・タイムアウト値は、クライアントが送信側障害またはネットワーク障害を検出できるように、 クライアントに知らされます。 制御パケットが、前の制御パケットの (このパラメーターで指定した値の 2 倍で定義された) 到着秒数以内で到着しない場合、 クライアントは、送信側障害またはネットワーク障害が生じたことを疑うことができます。

    デフォルト値は 20 です。

    ブローカー・マルチキャスト TTL (Broker Multicast TTL)
    マルチキャスト・パケットがクライアントとブローカーの間に作成できる最大ホップ数。 クライアントとブローカー間に存在できるルーターの最大数より 1 つ大きな値になります。

    デフォルト値は 1 です。この場合、マルチキャスト・パケットは発信元に残されたままで、 ルーターを移動することはありません。 最大値は 255 です。

    ブローカー・ネットワーク・インターフェース (Broker Network Interface)
    マルチキャスト・パケットが伝送されるネットワーク・インターフェースの名前。 これは、ブローカーが、ホスト上で、複数のネットワーク・インターフェースで実行される場合にのみ関係します。

    これは、ホスト名または IP アドレスにすることもできます。 デフォルトは 'なし' です。 デフォルト値を選択する場合、使用されるネットワーク・インターフェースは、 オペレーティング・システムによって異なります。

    マルチキャスト・トピック動作の重複 (Overlapping Multicast Topic Behavior)
    「受諾 (Accept)」、「拒否 (Reject)」、または「復帰 (Revert)」を選択します。

    「マルチキャスト・トピック動作の重複 (Overlapping Multicast Topic Behavior)」プロパティーは、 マルチキャストが明示的に使用不可にされているトピックを含むトピック階層の一部であるトピックについて、 クライアントがマルチキャスト・サブスクリプションを要求する際に、ブローカーの動作を制御します。

    たとえば、multicast が 2 つの子を持つトピックであり、foo ではマルチキャストが使用可能で、bar ではマルチキャストが使用不可であるトピック階層を考慮してください。

    指定できる設定は、以下の 3 つです。
    受諾 (Accept)
    一致するマルチキャスト・サブスクリプションが受け入れられ、特に除外したパブリケーションを除き、 トピックと一致するすべてのパブリケーションがマルチキャストされます。 上記の例では、multicast/# に対するマルチキャスト・サブスクリプションで、 マルチキャストによって foo でパブリッシュされたメッセージを受け取りますが、bar でパブリッシュされたメッセージは受け取りません。
    拒否 (Reject)
    マルチキャストが使用不可にされている子を持つトピックに対するマルチキャスト・サブスクリプションは、 ブローカーによって拒否されます。 multicast/# へのサブスクリプションは拒否されます。
    復帰 (Revert)
    マルチキャストが使用不可になっているトピックに対するサブスクリプション、 またはマルチキャストが使用不可になっている子を持つトピックに対するサブスクリプションは、 ユニキャスト伝送になります。 multicast/# に対するマルチキャスト・サブスクリプションでは、foo および bar でパブリッシュされたメッセージを受け取りますが、 メッセージはマルチキャストではなくユニキャストで送信されます。

    デフォルト値は「受諾 (Accept)」です。

    鍵の最大経過時間 (Maximum Key Age)
    最大経過時間の再定義が必要になるまでの、トピック暗号鍵の最大経過時間 (分単位)。

    デフォルト値は 360 です。

  9. オプション: マルチキャストの隣にある + をクリックし、「拡張 (Advanced)」をクリックします。 これで、以下の追加パラメーターを変更できます。
    ブローカー伝送率制限の活動化 (Broker Transmission Rate Limit Activation)
    「ブローカー伝送率制限の活動化 (Broker Transmission Rate Limit Activation)」プロパティーは、 「ブローカー伝送率制限値 (Broker Transmission Rate Limit Value)」と共に、ネットワーク輻輳の制御に使用します。 ドロップダウン・メニューから以下のいずれかの値を選択します。
    使用不可 (Disabled)
    マルチキャスト・データはできる限り高速で伝送されます。マルチキャストで伝送されるメッセージの伝送率がマシンまたはネットワークの制限を超える場合 (つまり、 イーサネットの速度またはホスト CPU がボトルネックとなる場合)、これらの制限は最大伝送率を定義し、 前にサブミットされたメッセージが送信されるまでメッセージ伝送が停止されます。
    静的 (Static)
    伝送率は、「ブローカー伝送率制限値 (Broker Transmission Rate Limit Value)」で指定した値によって制限されます。
    動的 (Dynamic)
    実行時の伝送率の制限は、輻輳条件とクライアントによって報告される損失によって異なります。 しかし、この率が「ブローカー伝送率制限値 (Broker Transmission Rate Limit Value)」を超えることはありません。

    デフォルトは、「使用不可 (Disabled)」です。 「静的 (Static)」を選択する場合、 パラメーター「ブローカー伝送率制限値 (Broker Transmission Rate Limit Value)」の値も選択できます。

    ブローカー伝送率制限値 (Broker Transmission Rate Limit Value)
    これは、マルチキャスト・パケットの伝送率全体を制限します (1 秒あたりの K ビット単位)。 このパラメーターは、「ブローカー伝送率制限の活動化 (Broker Transmission Rate Limit Activation)」プロパティーが、 「静的 (Static)」の場合にのみ有効です。 このパラメーターはマシンやネットワークの能力を越えてはなりません。

    この値の範囲は 10 から 1,000,000 になります。

    クライアント NACK バック・オフ・タイム (Client NACK Back Off Time)
    クライアントが自身の NACK を送信する前に、他の NACK を listen する最大時間(ミリ秒)。

    この値の範囲は 0 から 1000 になります。 デフォルト値は 100 です。

    クライアント NACK 検査期間 (Client NACK Check Period)
    受信状況の定期的なチェックと NACK 構築のためのシーケンス・ギャップ検出の時間の間隔(ミリ秒)。

    この値の範囲は 10 から 1000 になります。 デフォルトの値は 300 です。

    クライアント・パケット・バッファー数 (Client Packet Buffer Number)
    パケット受信の開始時に作成されるメモリー・バッファーの数。 たくさんのバッファーを使用可能にすると、メモリー使用率は犠牲になりますが、 受信のパフォーマンスが向上し、高送達速時のパケット損失を最小限に抑えられます。 各バッファーは 33KB です。500 バッファー (デフォルト値) がある場合、 約 15MB のメイン・メモリーを使用することになります。

    メモリー使用率が重要なのであれば、このパラメーターに別の値を使用してみて、 高速伝送率でのアプリケーションのパフォーマンス全体に対する影響を確認してください。

    この値の範囲は 1 から 5000 になります。 デフォルト値は 500 です。

    クライアント・ソケット・バッファー・サイズ (Client Socket Buffer Size)
    クライアントのソケット受信側バッファーのサイズをキロバイトで示します。 これを増やすと、損失率が減少します (クライアント受信側によって除去されるパケットはほとんどなくなります)。

    この値の範囲は 65 から 10000 になります。 デフォルト値は 3000 です。

    ブローカー・ヒストリー消去時間 (Broker History Cleaning Time)
    再送バッファーを消去するために定義した時間 (秒単位)。

    この値は 1 から 20 の範囲になります。 デフォルト値は 7 です。

    ブローカー最小ヒストリー・サイズ (Broker Minimal History Size)
    すべての伝送パケットのアーカイブとして割り振られるバッファーの最小サイズ(キロバイト)。 このバッファーは、信頼できるすべてのトピックによって共用され、 失われたパケットを回復するのに使用できます。

    この値の範囲は 1000 から 1,000,000 になります。 デフォルト値は 60,000 です。

    ブローカー NACK 累積時間 (Broker NACK Accumulation Time)
    回復したパケットが送信される前に、NACK がブローカー内に集約されるのに要する時間(ミリ秒)。

    この値の範囲は 50 から 1000 になります。 デフォルト値は 600 です。

ブローカーのマルチキャスト構成を変更するときの推奨される方法は、 ワークベンチを使用することです。 しかし、コマンド mqsichangeproperties を使用して、 ブローカーのプロパティーを変更することも可能です。mqsichangeproperties コマンドを参照してください。

mqsichangeproperties コマンド

以下の表では、上述のプロパティーを、マルチキャストをサポートする mqsichangeproperties コマンドの対応するパラメーター名に関連付けています。mqsichangeproperties コマンドの完全な説明は、mqsichangeproperties コマンドにあります。
プロパティー名 mqsichangeproperties パラメーター
マルチキャストが使用可能 (Multicast Enabled) multicastEnabled
最小アドレス (Min Address) multicastAddressRangeMin
最大アドレス (Max Address) multicastAddressRangeMax
データ・ポート (Data Port) multicastDataPort
ブローカー・パケット・サイズ (Broker Packet Size) multicastPacketSizeBytes
ブローカー・ハートビート・タイムアウト (Broker Heartbeat Timeout) multicastHeartbeatTimeoutSec
ブローカー・マルチキャスト TTL (Broker Multicast TTL) multicastMCastSocketTTL
ブローカー・ネットワーク・インターフェース (Broker Network Interface) multicastMulticastInterface
マルチキャスト・トピック動作の重複 (Overlapping Multicast Topic Behavior) multicastOverlappingTopicBehavior
鍵の最大経過時間 (Maximum Key Age) multicastMaxKeyAge
ブローカー伝送率制限の活動化 (Broker Transmission Rate Limit Activation) multicastLimitTransRate
ブローカー伝送率制限値 (Broker Transmission Rate Limit Value) multicastTransRateLimitKbps
クライアント NACK バック・オフ・タイム (Client NACK Back Off Time) multicastBackoffTimeMillis
クライアント NACK 検査期間 (Client NACK Check Period) multicastNackCheckPeriodMillis
クライアント・パケット・バッファー数 (Client Packet Buffer Number) multicastPacketBuffers
クライアント・ソケット・バッファー・サイズ (Client Socket Buffer Size) multicastSocketBufferSizeKbytes
ブローカー・ヒストリー消去時間 (Broker History Cleaning Time) multicastHistoryCleaningTimeSec
ブローカー最小ヒストリー・サイズ (Broker Minimal History Size) multicastMinimalHistoryKBytes
ブローカー NACK 累積時間 (Broker NACK Accumulation Time) multicastNackAccumulationTimeMillis

関連概念
マルチキャストのパブリッシュ/サブスクライブ

関連タスク
ブローカー・プロパティーの変更

関連資料
「ブローカー管理 (Broker Administration)」パースペクティブ
mqsichangeproperties コマンド