JDBC JobStore Tips
Never Write Directly To Quartz's Tables
Writing scheduling data directly to the database (via SQL) rather than using scheduling API:
Results in data corruption (deleted data, scrambled data)
Results in job seemingly "vanishing" without executing when a trigger's fire time arrives
Results in job not executing "just sitting there" when a trigger's fire time arrives
May result in: dead-locks
Other strange problems and data corruption
Never Point A Non-Clustered Scheduler At the Same Database As Another Scheduler With The Same Scheduler Name
If you point more than one scheduler instance at the same set of database tables, and one or more of those instances is not configured for clustering, any of the following may occur:
Results in data corruption (deleted data, scrambled data)
Results in job seemingly "vanishing" without executing when a trigger's fire time arrives
Results in job not executing, "just sitting there" when a trigger's fire time arrives
May result in: Dead-locks
Other strange problems and data corruption
Ensure Adequate DataSource Connection Size
It is recommended that your DataSource max connection size be configured to be at least the number of worker threads in the thread pool plus three. You may need additional connections if your application is also making frequent calls to the scheduler API. If you are using JobStoreCMT, the "non-managed" DataSource should have a max connection size of at least four.