2016-09-15 2 views
1

Я использую магазин JDBC Job с кварцем, потому что управляю работой в кластере enviorment. Ниже моя конфигурация JDBC с использованием MySQL:Quartz Scheduler: java.lang.IllegalStateException: JobStore завершает работу - прерывание повторной попытки

#============================================================================ 
# Configure Main Scheduler Properties 
#============================================================================ 

org.quartz.scheduler.instanceName: MyScheduler 
org.quartz.scheduler.instanceId: instance_one 

org.quartz.scheduler.skipUpdateCheck: true 


#============================================================================ 
# Configure ThreadPool 
#============================================================================ 

org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool 
org.quartz.threadPool.threadCount: 5 
org.quartz.threadPool.threadPriority: 5 

#============================================================================ 
# Configure JobStore 
#============================================================================ 

org.quartz.jobStore.misfireThreshold = 60000 

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX 
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 
org.quartz.jobStore.useProperties = false 
org.quartz.jobStore.dataSource = quartz_cluster 
org.quartz.jobStore.tablePrefix = QRTZ_ 
org.quartz.jobStore.isClustered = true 


#============================================================================ 
# Configure Datasources 
#============================================================================ 

org.quartz.dataSource.quartz_cluster.driver = com.mysql.cj.jdbc.Driver 
org.quartz.dataSource.quartz_cluster.URL = jdbc:mysql://localhost:3306/quartz_cluster 
org.quartz.dataSource.quartz_cluster.user = root 
org.quartz.dataSource.quartz_cluster.password = root 
org.quartz.dataSource.quartz_cluster.maxConnections = 5 

Всякий раз, когда я бег в квартах с указанным выше свойствами, моя работа начала осуществляющие и после выполнения 4 раза, я получаю следующее исключение:

[ERROR] - [2016-09-15 13:55:03,150] - [org.quartz.core.QuartzSchedulerThread] Runtime error occurred in main trigger firing loop. 
java.lang.IllegalStateException: JobStore is shutdown - aborting retry 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.retryExecuteInNonManagedTXLock(JobStoreSupport.java:3772) 
    at org.quartz.impl.jdbcjobstore.JobStoreSupport.releaseAcquiredTrigger(JobStoreSupport.java:2881) 
    at org.quartz.core.QuartzSchedulerThread.releaseIfScheduleChangedSignificantly(QuartzSchedulerThread.java:432) 
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:316) 

Ниже приводится моя работа деталь:

newJob(MyJob.class) 
       .withDescription("The myjob job") 
       .withIdentity("job-one", "group-one") 
       .usingJobData(jobDataMap) 
       .requestRecovery(true) 
       .build(); 

Ниже мой триггер деталь:

newTrigger() 
      .withIdentity("trigger-one", "group-one") 
      .withSchedule(cronSchedule("0/15 * * * * ?") 
        .withMisfireHandlingInstructionFireAndProceed()) 
      .build(); 

Я не понимаю, в чем проблема?

ответ

0

Возможно, вы можете попробовать перезагрузить таблицы данных кварца, у меня есть это исключение, потому что я копирую старые таблицы данных из старого проекта. Перезагрузка таблиц данных решит проблему. вы можете найти файл sql из файла tar link description here http://www.quartz-scheduler.org/downloads/

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