セットアップは次のとおりです。Glassfishバージョン3.1.2.2-
- DASとinstance-1は同じマシンで実行され、instance-2は構成ノードと同じネットワーク内の別のマシンで実行されます。
- Glassfish高可用性ガイド(http://docs.oracle.com/cd/E18930_01/html/821-2416/gjjpy.html#gaxim )に従って、共有ディレクトリにトランザクションログを設定しました。
- ネットワークでマルチキャストモードで実行されているネットワークロードバランサーがあるため、クラスター通信にユニキャスト構成を使用しています。
- 私たちのアプリケーション(複数の.warを含む.ear)には2つの永続的なタイマーがあります(クラスター内で一度にタイマーごとに1つのインスタンスしか必要ないため)。
インスタンス1(またはインスタンス2)が正常にシャットダウンされると、他のインスタンスは期待どおりにシャットダウンされたインスタンスからタイマーを回復します。instance-2がクラッシュするか、異常にオフラインになると、instance-1はタイマーを回復します(これも予想どおりです)。ただし、instance-1がクラッシュすると、instance-2は期待どおりにタイマーを回復しないようです。
ログからわかる限り、instance-2はinstance-1の適切なフェイルオーバーメッセージを受信してリカバリを開始しますが、障害が発生したインスタンスのトランザクションやタイマーをリカバリせずにリカバリを終了します。
誰かが問題が何であるかを教えてもらえますか?(これ以上の情報を提供する必要がありますか?)