私の状況は次のようなものです:Tomcatのシャットダウンshutdown.shを呼び出した後に非常に遅いですか?
いつもweb-appフォルダにwarファイルをアップロードする前に、私はsh shutdown.sh
を呼び出してTomcatを停止します。これは、全シャットダウンに約30秒かかっていました。しかし今はもううまくいきません。
実際には、Webページからアプリケーションにアクセスすると503エラー(Under Maintenance)が発生するため、実際にはいくつかの作業を行いました。しかし、ps aux | grep tomcat
を使って確認すると、tomcatプロセスはまだそこにあります。そして、それは約5〜10分の間そこにあるでしょう。
すべてのタスクを完了するために余分な時間がかかることがありますが、それは完全に停止するには遅すぎます(5〜10分)ことを理解しています。なぜこのようなことが起こるのか分かりませんが、何らかの理由があるはずです。おそらく、コードや、最近使用した新しい展開スクリプトと関連するものがあります。私はちょうどどこをチェックするかについてのほとんどの手がかりを持っていません。
これは、私たちがwarファイルを自動パッケージ化し、特定の時間にアップロードして展開するスクリプトを使用する「自動展開」を使用しているため、私たちのチームにとって重要です。古いものが正常にシャットダウンする前に新しいTomcatインスタンスを起動した場合、永遠にそこにハングアップし、 "kill -9"によるタスクをクリーンアップするのは大変です。
この問題を実験した人はいますか?どんな手がかりも感謝します。
Qを参照してください。それは、この5〜10分を取っているときに、最後のものは、ログに何ですか?また、 "ps -eaf"はあなたに手がかりを与えますか(または、CPU使用率ゼロのJavaプロセスを見ていますか?) Tomcatのバージョンは何ですか?あなたのOS?また、 "ps"で "java"プロセスが "ハングする"ことがわかったら、スタックトレースを取得する必要があります:http://wiki.apache.org/tomcat/HowTo#How_do_I_obtain_a_thread_dump_of_my_running_webapp_.3F – paulsm4
@ paulsm4:ログを見るshutdown.shを呼び出した後でも、私のQuartzジョブはまだ実行されていることがわかります。 SEVERE:Webアプリケーション[/ project]が[BasicResourcePool.close()のResource Destroyer]というスレッドを開始したように見えますが、停止できませんでした。これはメモリリークを引き起こす可能性が非常に高いです。 –
@ paulsm4:ところで、私は石英の仕事を約10秒間実行しています。これは問題になりますか? –