This release contains important bug fixes, new functionality and minor breaking changes.


Please examine and run the database\schema_20_to_22_upgrade.sql script if you are using AdoJobStore this script adds a new column SCHED_TIME to table QRTZ_FIRED_TRIGGERS file contains the alter command for SQL Server and other database samples in comments


  • database schema needs upgrade
  • add SchedulerStarting() method to ISchedulerListener interface
  • make the scheduler's TypeLoadHelper available to plugins when they are initialized
  • dbFailureRetryInterval parameter was removed from DirectSchedulerFactory APIs


  • ability to override worker thread names (when using SimpleThreadPool)
  • add new IScheduler method: ScheduleJob(IJobDetail job, ISet trigger) to schedule multiple triggers for a job all at once
  • allow 'triggerless' initial storing of non-durable jobs.
  • improvements for job recovery information
  • package job_scheduling_data_2_0.xsd to nuget package's content folder
  • allow scheduler exported with remoting to be used from local machine only
  • support for Oracle managed ODP driver


  • job ending with exception and trigger not going to fire again, trigger is incorrectly not removed from job store
  • XML schema supports multiple schedule elements but processor does not
  • DailyTimeIntervalTriggerPersistenceDelegate does not handle empty time interval properly
  • DailyTimeIntervalScheduleBuilder.EndingDailyAfterCount(...) doesn't pass validation
  • trace throwing exception
  • bug in QuartzSchedulerThread.GetRandomizedIdleWaitTime()
  • can't delete or replace job without the referenced class


  • Performance improvements, including improvements to some select statements in AdoJobStore
See download and installation instructions.