20.13.3.3. Java Messaging Service (JMS) クライアントに対するディスカバリーグループの設定
ディスカバリーグループは JMS およびコアクライアント向けに設定できます。JMS 接続ファクトリーに使用するディスカバリーグループはサーバー設定ファイル (
standalone.xml および domain.xml) で指定できます。
<connection-factory name="ConnectionFactory">
<discovery-group-ref discovery-group-name="my-discovery-group"/>
<entries>
<entry name="ConnectionFactory"/>
</entries>
</connection-factory>
discovery-group-ref 要素を使用してディスカバリーグループの名前を指定します。クライアントアプリケーションがこの接続ファクトリーを JNDI (Java Naming and Directory Interface) からダウンロードし、JMS 接続を作成すると、ディスカバリーグループ設定で指定されたマルチキャストアドレスでディスカバリーグループがリッスンし維持されるすべてのサーバー全体でこれらの接続の負荷が分散されます。
JNDI ではなく JMS を使用して接続ファクトリーを検索する場合、JMS 接続ファクトリーの作成時に直接ディスカバリーグループパラメーターを指定できます。
final String groupAddress = "231.7.7.7";
final int groupPort = 9876;
ConnectionFactory jmsConnectionFactory = HornetQJMSClient.createConnectionFactory(new DiscoveryGroupConfiguration(groupAddress, groupPort, new UDPBroadcastGroupConfiguration(groupAddress, groupPort, null, -1)), JMSFactoryType.CF);
Connection jmsConnection1 = jmsConnectionFactory.createConnection();
Connection jmsConnection2 = jmsConnectionFactory.createConnection();
セッターメソッド
setDiscoveryRefreshTimeout() を使用して refresh-timeout 属性のデフォルト値を DiscoveryGroupConfiguration に設定できます。最初の接続を確立する前に接続ファクトリーが特定期間待機するようにするには、DiscoveryGroupConfiguration でセッターメソッド setDiscoveryInitialWaitTimeout() を使用します。
この設定を行うと、接続ファクトリーがクラスターのすべてのノードからブロードキャストを受信するために十分な時間が与えられます。このパラメーターのデフォルト値は 10000 ミリ秒です。