新しいメッセージがないか MQ を継続的にポーリングして処理する MQEvent Listener スレッドがあります。このアプリケーションは、クラスタ化された Weblogic 環境にデプロイされます。アプリケーションを数か月実行すると、すべての Weblogic 管理対象サーバーのリスナー スレッドが (ほぼ同時に) 中断され、リスナーが終了します。これを再び機能させるには、アプリケーションを再デプロイする必要があります。
スレッドを中断しているものを見つけることができません。リスナーは複数の
Thread.sleep() が呼び出されますが、リスナーがどのように中断されるのかわかりません。
public void run() {
while (!isInterrupted()) {
//keep processing messages and sleep
}
}
Weblogic は実行時間の長いスレッドを中断し、それらをシャットダウンしようとしますか?