Кварцевый экземпляр StdSchedulerFactory () зависает в Java - PullRequest
0 голосов
/ 12 ноября 2018

Я перебрал все вопросы, связанные с Кварцевым планировщиком, и не нашел ни у кого другой проблемы, подобной той, которую я вижу. Этот вопрос не о проблемах с расписаниями, которые не работают должным образом, или о том, что задания не запускаются, что я и обнаружил. Кажется, я вхожу в состояние зависания, когда просто пытаюсь создать экземпляр объекта StdSchedulerFactory.

if(_logger.isInfoEnabled())
    _logger.info("made it here 01");

SchedulerFactory schedFact = new StdSchedulerFactory();

if(_logger.isInfoEnabled())
    _logger.info("made it here 02");

_sched = schedFact.getScheduler();

Этот блок кода находится внутри синхронизированного блока, который также проверяет, работает ли _sched (который объявлен как org.quartz.Scheduler). Если мы войдем в синхронизированный блок и обнаружим, что в настоящее время работает планировщик, мы выключим его.

Кажется, что код зависает при фактической реализации объекта StdSchedulerFactor (). «сделал это здесь 01» печатает, однако, «сделал это здесь 02» никогда не печатает.

Этот код отлично работает на моей локальной машине и в лабораторной среде. При развертывании на клиентском сервере происходит сбой.

Пара заметок

  • Этот код находится внутри блока try / catch. Ошибка не выдается
  • Я использую кварц 2.2.1 (мы должны остаться на jdk 1.6)
  • Развернутый код отлично работает в нескольких средах, но только в одной
  • Опять же, об ошибках не сообщалось (возможно, я ожидал найти ошибку ClassDefNotFound где-нибудь в моих журналах ... но ничего)

В моей локальной среде в моем файле catalina.log распечатано следующее.

[2018-11-11 07:23:07,456] [INFO] [QuartzScheduler.java:694] [Scheduler 
DefaultQuartzScheduler_$_NON_CLUSTERED shutting down.]

[2018-11-11 07:23:07,457] [INFO] [QuartzScheduler.java:613] [Scheduler 
DefaultQuartzScheduler_$_NON_CLUSTERED paused.]

[2018-11-11 07:23:07,457] [INFO] [QuartzScheduler.java:771] [Scheduler 
DefaultQuartzScheduler_$_NON_CLUSTERED shutdown complete.]

[2018-11-11 07:23:07,459] [INFO] [StdSchedulerFactory.java:1184] [Using 
default implementation for ThreadExecutor]

[2018-11-11 07:23:07,459] [INFO] [SimpleThreadPool.java:268] [Job execution 
threads will use class loader of thread: pool-6-thread-1]

[2018-11-11 07:23:07,462] [INFO] [SchedulerSignalerImpl.java:61] 
[Initialized Scheduler Signaller of type: class 
org.quartz.core.SchedulerSignalerImpl]

[2018-11-11 07:23:07,462] [INFO] [QuartzScheduler.java:240] [Quartz 
Scheduler v.2.2.1 created.]

[2018-11-11 07:23:07,463] [INFO] [RAMJobStore.java:155] [RAMJobStore 
initialized.]

[2018-11-11 07:23:07,463] [INFO] [QuartzScheduler.java:305] [Scheduler meta- 
   data: Quartz Scheduler (v2.2.1) 'DefaultQuartzScheduler' with instanceId 
'NON_CLUSTERED'
  Scheduler class: 'org.quartz.core.QuartzScheduler' - running locally.
  NOT STARTED.
  Currently in standby mode.
  Number of jobs executed: 0
  Using thread pool 'org.quartz.simpl.SimpleThreadPool' - with 10 threads.
  Using job-store 'org.quartz.simpl.RAMJobStore' - which does not support 
persistence. and is not clustered.
]

[2018-11-11 07:23:07,463] [INFO] [StdSchedulerFactory.java:1339] [Quartz 
scheduler 'DefaultQuartzScheduler' initialized from default resource file in 
Quartz package: 'quartz.properties']

[2018-11-11 07:23:07,463] [INFO] [StdSchedulerFactory.java:1343] [Quartz 
scheduler version: 2.2.1]

Опять же, эта распечатка из моей местной рабочей среды. В клиентской среде это никогда не печатается. Никаких ошибок не напечатано, хотя либо.

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

...