When using ADO.NET-based job store (the usual being JobStoreTX), Quartz requires the creation of a set of tables. Creating the initial schema or migrating existing one is a manual step, as Quartz.NET does not create or migrate these automatically.

TableBrief Description
qrtz_calendarsStores non-standard calendars
qrtz_job_detailsStores IJobDetail data
qrtz_lockslocks used by quartz
qrtz_scheduler_statestores IScheduler data
qrtz_triggersStores ITrigger data
qrtz_cron_triggersStores CRON trigger cron expression
qrtz_fired_triggerstriggers that are currently running
qrtz_blob_triggerstrigger table with a binary blob data storage
qrtz_simple_triggersdata for very simple repeat triggers
qrtz_simprop_triggersReusable table for custom triggers. Currently ICalendarIntervalTrigger and IDailyTimeIntervalTrigger use this
qrtz_paused_trigger_grpsIScheduler.PauseTriggers data

The scripts to create these tables for various providers can be found hereopen in new window

Quartz Triggers Table

This table stores the configuration of the ITrigger data that is shared across all types.

Trigger Stateopen in new windowDescription
Normaltrigger has fire times, and will do so on schedule
Pausedpaused and will not execute
Completetrigger will not fire again, it has no more "fire times"
Errorthe trigger had an error, it will not be fired again
Blockedthis trigger is associated with a job that is DisallowConcurrentExecutionAttribute and so must wait, but the trigger would like to fire
Nonethe trigger doesn't exist
Waitingdb only, and means the job is ready to be picked up