获取数据库行锁定失败:表QRTZ_LOCKS中没有行存在名为:TRIGGER_ACCESS的锁

use*_*327 5 java spring quartz-scheduler

我是Quartz调度程序的新手,我正在使用Spring ...当我尝试运行包含Quartz配置的XML文件时,我得到一个例外,说明:

Failure obtaining db row lock: No row exists in table QRTZ_LOCKS for lock named: 
TRIGGER_ACCESS 
Run Code Online (Sandbox Code Playgroud)

我发现QRTZ_LOCKS表包含两个字段:SCHED_NAME和LOCK_NAME,我应该在我的数据库中运行以下语句:

INSERT INTO QRTZ_LOCKS values('my sched_name', 'TRIGGER_ACCESS'); 
INSERT INTO QRTZ_LOCKS values('my sched_name','JOB_ACCESS'); 
INSERT INTO QRTZ_LOCKS values('my sched_name','CALENDAR_ACCESS'); 
INSERT INTO QRTZ_LOCKS values('my sched_name','STATE_ACCESS'); 
INSERT INTO QRTZ_LOCKS values('my sched_name','MISFIRE_ACCESS');  
Run Code Online (Sandbox Code Playgroud)

但我不知道我的sched_name是什么?

任何的想法 ??

Vok*_*oro 6

你只需要运行

      INSERT INTO QRTZ_LOCKS values('TRIGGER_ACCESS');
      INSERT INTO QRTZ_LOCKS values('JOB_ACCESS');
      INSERT INTO QRTZ_LOCKS values('CALENDAR_ACCESS');
      INSERT INTO QRTZ_LOCKS values('STATE_ACCESS');
      INSERT INTO QRTZ_LOCKS values('MISFIRE_ACCESS');
Run Code Online (Sandbox Code Playgroud)

这实际上对我有用。至少停止了错误。


wil*_*ome 1

*my_sched_name* 可以从表qrtz_job_details(sched_name) 中检索。您的quartz配置/部署一定有问题,因为通常您不必手动插入/更新这些表。