15.2. クライアントサイドから障害を検出
クライアントは、使用しないリソースをサーバーが削除するのを防ぐためにサーバーに対して ping をジッコウ今す。また、サーバーまたはネットワークで障害が発生したかどうかを検出するためにサーバーに対して ping を実行します。
クライアントがサーバーからデータを受信する限り、接続が保持されていると見なされます。
クライアントが
client-failure-check-period ミリ秒の間まったくパケットを受け取らない場合、クライアントは接続が失敗したと見なし、設定に応じてフェイルオーバーを開始するか、または任意の SessionFailureListener インスタンス (JMS を使用している場合は ExceptionListener インスタンス) を呼び出します。
JMS の場合は、チェック期間が
HornetQConnectionFactory インスタンス上の ClientFailureCheckPeriod 属性によって定義されます。JMS 接続ファクトリーインスタンスは、サーバーサイドの JNDI に直接デプロイされる場合にパラメーター client-failure-check-period を使用して JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-jms.xml 設定ファイルで指定できます。
クライアント障害チェック期間のデフォルト値は
30000ms (30 秒) です。値が -1 の場合は、データをサーバーから受け取らないときにクライアントサイドで接続が失敗します。通常、これは、一時的な障害発生時にクライアントが再接続できるよう接続 TTL 値よりも大幅に小さくなります。