2009-03-06 2 views
20

У меня есть работа кварца, которая работала каждый день в 7 вечера. Вдруг он не смог бежать. Я проверяю свой сервер.log и нет исключений. Кто-нибудь может понять, что может быть проблемой?Quartz Scheduler внезапно перестает работать и не имеет ошибки исключения

Заранее спасибо

+0

Не могли бы вы разместить код, который используется для настройки задания кварца? –

+0

Любое обходное решение? У меня такая же проблема. – kaptan

ответ

2

Если вы используете базу данных для хранения заданий, проверьте trigger_state вашего триггера. Сейчас я вижу подобную проблему (или, по крайней мере, у нее похожие симптомы).

Работа, которая выполняется один раз в минуту, покидает триггер в состоянии «ПРИОБРЕСТИ» и больше не будет запускаться снова. Как вы, я ничего не вижу в журнале.

У меня также есть другая причина той же проблемы. Опять же, работа просто перестает работать, но триггер не находится в состоянии «ACQUIRED». Пока я не знаю причину.

До сих пор я знаю, что поток планировщика ждет поток рабочего рабочего. Похоже, что все рабочие потоки ждут семафора, чтобы обновить свое расписание. Я еще не смог получить дамп потока, чтобы проверить, что ожидают рабочие потоки.

Я работаю Quartz 1.6.1 RC1. См. Этот отчет об ошибке: http://jira.opensymphony.com/browse/QUARTZ-668

Я думаю, что это то, что я вижу.

2

Проверьте, не срабатывает ли какой-либо Иов Исключение. Поместите код exe вашего задания в блок catch try, чтобы получить любое исключение, чтобы устранить проблему.

12

У меня был аналогичной проблема, но проблема была, у меня было 10 потоков кварцевого числа потоков в кварцевых свойствах по умолчанию, и когда я сделал нить дамп * Я обнаружил, что у меня есть 10 рабочих мест в заблокированы стате, что означает, что я не может запускать больше потоков.

Быстрое исправление этой проблемы, чтобы увеличить количество потоков в пуле потоков в свойствах кварца.

Фактическое исправление рассматривало мой код, чтобы узнать, почему у меня было 10 заблокированных потоков.

* сделать нить дамп можно использовать номер убить -3 < процесс Java> который печать дампа потоков в прикладном стандартный вывод, т.е. если вы используете кот вы найдете его в catalina.out файла журнала

0

У меня была схожая, но несколько другая проблема. Мой планировщик отлично работает в среде разработки. В этом планировщике я выполняю такие задания, как обновление транзакций и т. Д.

Когда мы переводим сборку в производство, планировщики работают хорошо, и все было в порядке до субботы. В субботу мой планировщик внезапно остановился. Я не нашел никаких исключений, связанных с планировщиком на моем сервере приложений (OC4J).

Я использую версию кварца-1.5.2. Я не могу проследить фактическую основную причину проблемы.

Я запускаю планировщик при запуске сервера приложений. Если что-то пойдет не так, оно перестанет работать. Тогда у меня нет шансов начать их.

Я думаю, что если я запустил планировщики, вызвав сервлет init, используя некоторый запрос jsp, это снова изменит ситуацию. Это будет похоже на просмотр профиля (здоровье наших планировщиков и запуск их снова). Если у вас есть лучший подход к запуску планировщика, пожалуйста, предложите мне.

+1

Если ваши задания работали нормально в течение некоторого времени, это не должно быть о том, как вы запускаете планировщик. Я думаю, вы должны взять нить и кучу дампа и посмотреть, где она застряла. Также ничего не стоило бы разницы между настройками dev и prod, но начинайте с дампов потоков. – aishwarya

-1

Да, увеличение количества потоков от 7 до 10 в quartz.properties, похоже, решает эту проблему.

6

В моем случае у меня было открытое соединение с базой данных. Когда у меня не было больше связей, мои потоки оставались в ожидании. Поскольку я не мог начать никаких других заданий, ничего не произошло, и все оставалось заблокированным. Мой совет - проверить, есть ли у вас какой-либо блокирующий ресурс, который вам может понадобиться для выпуска.

+0

в нашем случае это произошло, когда произошло потеря связи –

Смежные вопросы