Eu tenho um programa de agendamento que utiliza a engine do Quartz.
Eu faço o schedule de 68 jobs no framework, para serem executados de 15 em 15 minutos.
Esses jobs executam algumas ações em um banco de dados, selects e updates.
Esses schedules rodam tranquilamente por 2 dias e no terceiro eles param, não geram nenhum
erro de log, nenhum estouro de memoria, ou nada assim , os schedules rodam numa aplicação
esxuctada no tomcat, mais mesmo quando os schedules param no terceiro dia o tomcat fica normal
e num existe nenhum log de erro…
Alguem tem alguma ideia do que possa estar acontecendo ???
Eu quero que estes agendamento rodem de 15 em 15 minutos todos os dias.
Obrigado.
T
thingol
Dica: experimente agendar algo que, de propósito, lance uma RuntimeException. Se o schedule parar de funcionar, então é porque a RuntimeException “vazou” e acabou “fritando” com a thread do Quartz que agenda os processos.
Se isso estiver ocorrendo, encapsule seu código dentro de um “try … catch (Throwable ex) { logar o erro ocorrido }”, para que a exception não vaze para o Quartz.
Eu sei que um problema semelhante ocorre se você agendar alguma coisa com java.util.Timer ou javax.swing.Timer; ambas as classes não protegem a execução do método “run” com um try / catch.
Jose_Donizetti
Obrigado thingol, o erro é esse mesmo… Quanto um Job do Quartz lança uma runtimeexception o mesmo para de funcionar.
O unico problema que a thread que recebe o erro em runtime não lança a exceção, quando simulei todos os agendamentos pararam
de funcionar mais eu não consegui capturar nenhuma das exeções !!!
Alguem tem alguma ideia ?
Obrigado.
T
thingol
A única idéia que eu tenho é pegar o tal processo que possa eventualmente lançar uma exceção e encapsulá-lo em um try {} catch (Throwable ex) {}, porque aí vai pegar qualquer coisa (sendo erro de runtime ou não).