私たちの開発環境では、Cent OS 5.5 上に 2 つの Tomcat 7.0.22 ノードがあり、スティッキー セッションで F5 ロード バランサーによって処理されます。最近、JDK 7 にアップグレードし、Tomcat のランダムなシャットダウンを観察し始めました。複数の war は、共通の共有ローダー ディレクトリから展開されます。シャットダウン時のパターンは以下の通り
- ほとんどの場合、両方のノードが次々にシャットダウンします。あるシナリオでは、1 匹の tomcat が死亡し、もう 1 匹がまだ稼働していました。
- catalina ログは、「INFO: Stop service Catalina」を出力した後、シャットダウンが正常に行われたことを示しています
- System.exit 呼び出しが見つかりませんでした
- OOMの表示なし
- Spring コンテナーにシャットダウン フックを追加したところ、スレッド ダンプで疑わしいスレッドが発生しませんでした。
- バックグラウンドでウォッチドッグ サービスが実行されていない
- ログをローテーションする etc/lograte.d の下の 1 つのスクリプトを観察
- 8080 用の HTTP 1.1 コネクタ、リダイレクト 8443
- 8009 の AJP、リダイレクト 8443
この問題をデバッグするためのアイデアが不足しています。基本的に、シャットダウンを呼び出した正確なプロセスまたはスレッドを知ることができるフックまたはデバッガーを探しています。正常なシャットダウンとTomcatがそれを処理したため、これは可能であるはずです。
ほとんどの場合、JDK 1.6 に戻し、数日間テストします。それまでは、ヘルプやポインタをいただければ幸いです
前もって感謝します!