Tomcat 6には、@Scheduled
(主に毎晩実行するジョブ用)を介して複数のスケジュールされたサービスを使用するSpring 3 Webアプリケーションがあります。今では、スケジューラースレッドが動作を停止することはまれである(たぶんおそらく2ヶ月に1回程度)ので、次の夜は実行されません。ログファイルには例外やログエントリはありません。Spring Schedulerが突然停止する
これはなぜ起こっているのか誰かが分かっていますか?またはこの問題に関する詳細情報の入手方法は?
アプリケーション内でこの状況を検出し、スケジューラを再起動する方法はありますか?
現在のところ、5分ごとに実行されるログジョブを作成し、ログエントリを作成することでこれを解決しています。ログファイルが更新されなくなった場合(nagiosによって監視されます)、tomcatを再起動する必要があります。サーバーを完全に再起動しなくてもジョブを再起動するといいでしょう。
スケジュールされたタスクでは何が行われていますか?何かが無限ループに詰まってしまう可能性はありますか?スケジュールされたタスクはデフォルトで1スレッドのスレッドプールを使用していて、何とか掛かってしまえば、将来のタスクは開始されないため、私は尋ねます。(しかし、キューに入れられると確信しています。 –
@ nicholas.hauschild外部REST Webサービスを呼び出します。つまり、そのような要求がブロックされ(デッドロック?)、他のすべてのジョブを停止する可能性があるということです。私はこれが再び発生した場合、私はサーバーのスレッドダンプを要求すると思います。あなたのご意見ありがとうございます。 – obecker
スレッドダンプを取ることはおそらく良い考えです。 –