This release contains important bug fixes, new functionality and minor breaking changes.
UPGRADING
Database schema upgrade is needed from 2.x series to 2.2:
- SQL Server: alter table QRTZ_FIRED_TRIGGERS add SCHED_TIME [BIGINT] NOT NULL;
- MySQL: alter table QRTZ_FIRED_TRIGGERS add SCHED_TIME BIGINT(19) NOT NULL
- Oracle: alter table QRTZ_FIRED_TRIGGERS add SCHED_TIME NUMBER(19) NOT NULL
- this adds a new column SCHED_TIME to table QRTZ_FIRED_TRIGGERS
BREAKING CHANGES
- 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
NEW FEATURES
- 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
FIXES
- 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
MISC
- Performance improvements, including improvements to some select statements in AdoJobStore