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

場合によっては、自動クライアントフェイルオーバーは行わず、接続障害を自分で処理し、障害ハンドラーに再接続ロジックを手動でコーディングすることもできます。フェイルオーバーはユーザーアプリケーションレベルで処理されるため、これをアプリケーションレベルのフェイルオーバーとして定義します。

JMS を使用する場合にアプリケーションレベルのフェイルオーバーを実装するには、JMS 接続で ExceptionListener クラスを設定します。ExceptionListener は、接続障害が検出された場合に JBoss EAP メッセージングによって呼び出されます。ExceptionListener では、古い JMS 接続を閉じ、場合によっては、JNDI から新しい接続ファクトリーインスタンスを検索し、新しい接続を作成します。

コア API を使用している場合、手順は非常に似ています。コア ClientSession インスタンスで FailureListener を設定します。