18.16.12. アプリケーションレベルのフェイルオーバー
状況に応じて、カスタム障害ハンドラーで再接続ロジックを指定して、接続障害を手動で処理できることがあります。フェイルオーバーはユーザーアプリケーションレベルで処理されるため、これをアプリケーションレベルのフェイルオーバーとして定義できます。
アプリケーションレベルのフェイルオーバーを実装するには、JMS を使用している場合は、JMS 接続で ExceptionListener クラスを設定する必要があります。接続の障害が検出されると、ExceptionListener クラスは HornetQ によって呼び出されます。ExceptionListener で、古い JMS 接続を閉じ、JNDI から新しい接続ファクトリーインスタンスを検索し、新しい接続を作成します。
コア API を使用している場合、手順は非常に似ています。コア ClientSession インスタンスで FailureListener を設定します。