36.2.4. クライアントサイドの検出グループ
接続できるサーバーのリストを検出するために検出を使用するよう HornetQ クライアントを設定する方法について説明します。これを行う方法は、JMS を使用しているか、コア API を使用しているかによって異なります。
36.2.4.1. JMS を使用したクライアント検出の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JMS を使用しており、JMS 接続ファクトリーインスタンスを JNDI にロードするためにサーバー上で JMS サービスを使用している場合は、サーバーサイド XML 設定
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml で JMS 接続に使用する検出グループを指定できます。以下に例を示します。
要素
discovery-group-ref は、JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml で定義された検出グループの名前を指定します。
この接続ファクトリーがクライアントアプリケーションによって JNDI からダウンロードされ、JMS 接続が接続ファクトリーから作成された場合、これらの接続は、検出グループ設定で指定されたマルチキャストアドレスでリッスンすることによって検出グループが保持するサーバーのリスト全体で、負荷分散されます。
JMS を使用しているが、接続ファクトリーをルックアップするために JNDI を使用していない場合 (JMS 接続ファクトリーを直接インスタンス化する場合) は、JMS 接続ファクトリーの作成時に検出グループパラメータを直接指定できます。以下に例を示します。
refresh-timeout は、setter メソッド setDiscoveryRefreshTimeout() を使用して接続ファクトリーで直接設定できます (デフォルト値を変更する場合)。
また、setter メソッド
setDiscoveryInitialWaitTimeout() を使用して接続ファクトリーで設定できる他のパラメータもあります。作成後にすぐに接続ファクトリーを使用する場合は、クラスター内のすべてのノードからブロードキャストを受け取るのに十分な時間がないことがあります。最初に使用する場合、接続ファクトリーによって、最初の接続を作成する前に十分に長い時間を待つようになります。このパラメータのデフォルト値は、10000 ミリ秒です。