毎日午後7時に実行されていたクォーツジョブがあります。突然実行できなくなりました。server.log を確認しましたが、スローされた例外はありません。何が問題なのか誰にも分かりますか?
前もって感謝します
毎日午後7時に実行されていたクォーツジョブがあります。突然実行できなくなりました。server.log を確認しましたが、スローされた例外はありません。何が問題なのか誰にも分かりますか?
前もって感謝します
同様の問題がありましたが、問題は、クォーツプロパティに10個のスレッドクォーツのデフォルトスレッド数があり、スレッドダンプ*を作成したときに、ブロックされた統計に10個のジョブがあることがわかりました。つまり、これ以上実行できませんスレッド。
この問題をすばやく修正して、Quartz プロパティのスレッド プール内のスレッド数を増やします。
実際の修正は、コードを見直して、ブロックされたスレッドが 10 個あった理由を知ることでした。
*スレッド ダンプを実行するには、kill -3 < java process number >を使用できます。これにより、スレッド ダンプがアプリケーションの標準出力に出力されます。つまり、Tomcat を実行している場合は、catalina.outログ ファイルで見つけることができます。
私の場合、データベースへのオープン接続がありました。利用可能な接続がなくなったとき、スレッドは永遠に待機したままになりました。他の仕事を始めることができなかったので、何も起こらず、すべてがブロックされたままになりました。私のアドバイスは、解放する必要がある可能性のあるブロッキング リソースがあるかどうかを確認することです。
データベースを使用してジョブを保存している場合は、トリガーの trigger_state を確認してください。現在、同様の問題が発生しています (または、少なくとも同様の症状があります)。
1 分に 1 回実行されるジョブは、トリガーを「ACQUIRED」状態のままにし、二度と実行されません。あなたのように、ログには何も表示されません。
また、同じ問題の別の原因も見ています。繰り返しますが、ジョブは実行を停止しますが、トリガーは「ACQUIRED」状態ではありません。これまでのところ、私は原因を知りません。
私がこれまでに知っていることは、スケジューラ スレッドが空きワーカー スレッドを待っているということです。スケジュールを更新するために、すべてのワーカー スレッドがセマフォを待機しているようです。ワーカー スレッドが何を待機しているかを確認するためのスレッド ダンプをまだ取得できていません。
Quartz 1.6.1 RC1 を実行しています。このバグ レポートを参照してください: http://jira.opensymphony.com/browse/QUARTZ-668
それが私が見ているものだと思います。
ジョブが例外をスローしているかどうかを確認します。Job exe コードを try catch ブロックに入れ、例外をトレースして、問題をトラブルシューティングします。