原因是driverDelegateClass配置错误。
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate
org.quartz.jobStore.dataSource=myDS
org.quartz.jobStore.tablePrefix=qrtz_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.acquireTriggersWithinLock=true
org.quartz.jobStore.clusterCheckinInterval=30000
将driverDelegateClass改成如下
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate
博主使用的数据库是Mysql,按理说driverDelegateClass配置成“org.quartz.impl.jdbcjobstore.MSSQLDelegate”应该是没错的。
但是使用MSSQLDelegate生成的SQL如下:
SELECT * FROM qrtz_LOCKS WITH (UPDLOCK,ROWLOCK) WHERE SCHED_NAME = 'quartzScheduler' AND LOCK_NAME = 'TRIGGER_ACCESS';
mysql中并不是使用WITH(UPDLOCK,ROWLOCK)作为行锁方式。