Как следует устранять неполадки и / или предотвращать безудержные таймауты блокировки UDB из удалений из таблицы кварцевого планировщика для кластерного планировщика с одним узлом?

Среда:

Websphere 8.5, Java SE7, Quartz 2.2.3, Java, UDB 10.5 FP 8

Планировщик:

Кластерный планировщик с 1 узлом в кластере

Кварц Свойства:

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

org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO

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

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
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 = myDS
org.quartz.jobStore.tablePrefix = QRTZ_

org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 15000

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

org.quartz.dataSource.myDS.driver = com.ibm.db2.jcc.DB2Driver
org.quartz.dataSource.myDS.URL = jdbc:db2://server:port/dbname
org.quartz.dataSource.myDS.maxConnections = 10
org.quartz.dataSource.myDS.validationQuery=VALUES current date

Сценарий:

  1. Планировщик планирует ~3 тыс. Заданий с помощью SimpleTrigger примерно за одно и то же время, примерно через полчаса + n секунд после запланированного последнего задания.
  2. Все задания запускаются во время запуска + n секунд (например, 11:30: сс)

Код строительного задания:

JobBuilder jobBuilder = newJob(jobClassFor(jobClassName));
jobBuilder.usingJobData(new JobDataMap(jobParameters));
JobDetail job = jobBuilder.build();

Триггер строительный код:

//1 trigger per job
triggers.add(newTrigger().forJob(job).startAt(triggerDate).build());

Код планировщика:

scheduler.scheduleJob(job, triggers, true);

Задание публикует сообщение MQ, используя данные из JobExecutionContext.jobDataMap, поэтому оно должно выполняться довольно быстро. У меня нет инструкций по обработке пропусков зажигания, настроенных явно в триггере.

Индексы БД:

QRTZ_JOB_DETAILS: +SCHED_NAME+JOB_NAME+JOB_GROUP
QRTZ_TRIGGERS: +SCHED_NAME+TRIGGER_NAME+TRIGGER_GROUP
QRTZ_SIMPLE_TRIGGERS: +SCHED_NAME+TRIGGER_NAME+TRIGGER_GROUP
QRTZ_CRON_TRIGGERS: +SCHED_NAME+TRIGGER_NAME+TRIGGER_GROUP
QRTZ_SIMPROP_TRIGGERS: +SCHED_NAME+TRIGGER_NAME+TRIGGER_GROUP
QRTZ_BLOB_TRIGGERS: +SCHED_NAME+TRIGGER_NAME+TRIGGER_GROUP
QRTZ_CALENDARS: +CALENDAR_NAME
QRTZ_FIRED_TRIGGERS: +SCHED_NAME+ENTRY_ID
QRTZ_PAUSED_TRIGGER_GRPS: +SCHED_NAME+TRIGGER_GROUP
QRTZ_SCHEDULER_STATE: +SCHED_NAME+INSTANCE_NAME
QRTZ_LOCKS: +SCHED_NAME+LOCK_NAME
QRTZ_TRIGGERS: +NEXT_FIRE_TIME
QRTZ_TRIGGERS: +TRIGGER_STATE
QRTZ_TRIGGERS: +TRIGGER_STATE+NEXT_FIRE_TIME
QRTZ_FIRED_TRIGGERS: +TRIGGER_NAME
QRTZ_FIRED_TRIGGERS: +TRIGGER_GROUP
QRTZ_FIRED_TRIGGERS: +TRIGGER_NAME+TRIGGER_GROUP
QRTZ_FIRED_TRIGGERS: +INSTANCE_NAME
QRTZ_FIRED_TRIGGERS: +JOB_NAME
QRTZ_FIRED_TRIGGERS: +JOB_GROUP
QRTZ_TRIGGERS: +MISFIRE_INSTR+NEXT_FIRE_TIME
QRTZ_TRIGGERS: +MISFIRE_INSTR+NEXT_FIRE_TIME+TRIGGER_STATE
QRTZ_TRIGGERS: +MISFIRE_INSTR+NEXT_FIRE_TIME+TRIGGER_GROUP+TRIGGER_STATE

Поведение:

QRTZ_ * удаляет, а обновления блокируются блокировками удалений для QRTZ_TRIGGER, QRTZ_SIMPLE_TRIGGER и QRTZ_JOB_DETAILS. Влияние на 3 тыс. Заданий занимает чуть более 1 часа.

Вопрос:

Как мне начать устранение неполадок и / или исправление этого поведения?

0 ответов

Другие вопросы по тегам