20.4.2. クライアントサイド障害の検出
クライアントアプリケーションは、クライアントがシャットダウンしないように自動的に ping パケットをサーバーに送信します。同様に、クライアントアプリケーションは、サーバーからデータを受信するかぎり、接続がアライブ状態であると見なします。
クライアントが
client-failure-check-period
パラメーターで指定された期間サーバーからデータパケットを受信しない場合、クライアントは通信が失敗したと見なします。次に、クライアントはフェールオーバーを開始するか、FailureListener
インスタンスを呼び出します。
JMS クライアントの場合、
HornetQConnectionFactory
インスタンスで ClientFailureCheckPeriod
属性を使用してクライアント障害チェック期間が設定されます。サーバーサイドで JMS 接続ファクトリーインスタンスを JNDI に直接デプロイする場合は、standalone.xml
および domain.xml
サーバー設定ファイルで client-failure-check-period
パラメーターを指定できます。
クライアント障害チェック期間のデフォルト値は 3000 ミリ秒です。値が -1 の場合は、サーバーからデータが受信されないときにクライアントで接続が閉じられません。トランジションが失敗した場合にクライアントが再接続できるように、クライアント障害チェック期間の値は接続 TTL よりも大幅に小さくなります。
非同期接続実行の設定
デフォルトでは、サーバーサイドで受信されたパケットはリモートスレッドで実行されます。スレッドプールから任意のスレッドで操作を非同期的に処理することにより、リモートスレッドを解放できます。非同期接続実行は、standalone.xml
および domain.xml
サーバー設定ファイルで async-connection-execution-enabled
パラメーターを使用して設定できます。このパラメーターのデフォルト値は "true" です。
注記
スレッドプールから任意のスレッドで操作を非同期的に処理する場合は、若干のレイテンシーが追加されます。パフォーマンス上の理由により、リモートスレッドでは短い実行中の操作が常に処理されます。