37.2.3. アプリケーションレベルフェイルオーバー

場合によっては、自動クライアントフェイルオーバーが適切でなく、自分で接続障害を処理し、独自の障害ハンドラーで独自の再接続ロジックを手動でコーディングした方が良いことがあります。フェイルオーバーはユーザーアプリケーションレベルで処理されるため、これは、アプリケーションレベルと定義されます。
アプリケーションレベルフェイルオーバーを実装するには、JMS を使用している場合は、JMS 接続で ExceptionListener クラスを設定します。ExceptionListener は、接続障害が検出されたときに HornetQ により呼び出されます。ExceptionListener で、古い JMS 接続を閉じ、新しい接続ファクトリーインスタンスを JNDI からルックアップし、新しい接続を作成します。この場合は、新しい接続ファクトリーが異なるサーバーからルックアップされるよう HA-JNDI を使用できます。
コア API を使用する場合、手順は非常に似ています。コア ClientSession インスタンスで SessionFailureListener を設定します。