20.13.3. ディスカバリーグループ

ブロードキャストグループは、ネットワーク上でコネクターをブロードキャストするために使用されます。ディスカバリーグループは、コネクターの情報がどのようにブロードキャストエンドポイント (UDP または JGroups ブロードキャストグループ) によって受信されるかを定義します。ディスカバリーグループは、各サーバーのブロードキャストごとにコネクターペアのリストを 1 つ維持します。
ディスカバリーグループが、特定サーバーのブロードキャストエンドポイントでブロードキャストを受信すると、特定サーバーのリストにあるコネクターペアのエントリーを更新します。特定サーバーから長期間ブロードキャストを受信しないと、リストからサーバーのエントリーを削除します。
ディスカバリーグループは主にクラスター接続および Java Messaging Service (JMS) クライアントによって使用され、必要なトポロジーをダウンロードするために最初の接続情報を取得します。

注記

対応するブロードキャストグループ (UDP または JGroups) と一致する適切なブロードキャストエンドポイントを使用して各ディスカバリーグループを設定する必要があります。

20.13.3.1. サーバー上での UDP (ユーザーデータグラムプロトコル) ディスカバリーグループの設定

以下は UDP ディスカバリーグループの定義例になります。
<discovery-groups>
   <discovery-group name="my-discovery-group">
      <local-bind-address>172.16.9.7</local-bind-address>
      <group-address>231.7.7.7</group-address>
      <group-port>9876</group-port>
      <refresh-timeout>10000</refresh-timeout>
   </discovery-group>
</discovery-groups>

注記

上例の local-bind-address、group-address、および group-port 属性は廃止されました。これらの属性の代わりに socket-binding 属性を使用できます。
以下は、廃止された属性を socket-binding 属性に置き換えた UDP ディスカバリーグループの定義例になります。
<discovery-groups>
   <discovery-group name="my-discovery-group">
      <socket-binding>messaging-group</socket-binding>
      <refresh-timeout>10000</refresh-timeout>
   </discovery-group>
</discovery-groups>
下表は、上記の例や通常の設定で ディスカバリーグループを定義するために使用される重要なパラメーターを説明しています。

表20.12 UDP ディスカバリーグループパラメーター

属性説明
name attribute
この属性はディスカバリーグループの名前を表します。ディスカバリー名はサーバーごとに一意の名前となる必要があります。
local-bind-address
[廃止済み] 任意の UDP 固有の属性です。同じマシンで複数のインターフェースを使用する場合に特定のインターフェースでリッスンするディスカバリーグループを設定するために使用されます。
group-address
[廃止済み] 必須の UDP 固有の属性です。グループのマルチキャスト IP アドレスでリッスンするディスカバリーグループを設定するために使用されます。この属性の値は、リッスンするブロードキャストグループの group-address 属性と一致する必要があります。
group-port
[廃止済み] 必須の UDP 固有の属性です。マルチキャストグループの UDP ポートを設定するために使用されます。この属性の値は、リッスンするマルチキャストグループの group-port 属性と一致する必要があります。
socket-binding
ディスカバリーグループのソケットバインディングを表します。
refresh-timeout
任意の UDP 固有の属性です。最後のブロードキャストをサーバーから受信した後、削除する前にディスカバリーグループが待機する期間 (ミリ秒単位) を設定するために使用されます。ブロードキャスト処理が続行されているときにサーバーが即座にリストから削除されないように、refresh-timeout の値を broadcast-period の値よりもはるかに大きくする必要があります。この属性のデフォルト値は 10000 秒です。