Environment:
Problem and findings so far:
[QuartzScheduler_QuartzScheduler-NON_CLUSTERED_MisfireHandler] DEBUG jdbcjobstore.JobStoreTX - Found 0 triggers that missed their scheduled fire-time.
Jobs are scheduled to be run every few hours and each job won't take more than a few minutes to finish. In other words, no thread is busy which is proven in Thread Dump.
30 threads are configured for Quartz. All 30 are in TIMED_WAITING state in thread dump taken before job scheduled time.
QuartzScheduler_Worker-30 *priority:3 - threadId:0x0000000104ff5000 - nativeId:0x1c1 - nativeId (decimal):449 - state:TIMED_WAITING stackTrace: java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568) - locked (a java.lang.Object)*
More details on simulated issue: - While job is not triggered based on the log. PREV_FIRE_TIME column in QUARTZ_TRIGGERS table is updated.
There was an issue in Database. Tablespace was full, so quartz was not able to insert records to start schedule job.
I wonder why no Exception was thrown while there was DB issue even when I enabled the Quartz debug mode.