2012-11-12 11 views
5

我是Quartz調度程序的新手,我正在使用它與春天...當我試圖運行包含Quartz配置的XML文件我有一個例外,指出:獲取db行鎖定失敗:表QRTZ_LOCKS中沒有行存在名爲TRIGGER_ACCESS的鎖:TRIGGER_ACCESS

Failure obtaining db row lock: No row exists in table QRTZ_LOCKS for lock named: 
TRIGGER_ACCESS 

我發現桌子QRTZ_LOCKS包含兩個字段:SCHED_NAME和LOCK_NAME,我應該跑在我的數據庫下面的語句:

​​

但我不」不知道我的sched_name是什麼?

任何想法??

+0

請提供您的石英版本。 – willome

回答

1

* my_sched_name *可從表qrtz_job_details(sched_name)中檢索。 由於通常您不必手動插入/更新這些表,因此您的quartz配置/部署必須存在問題。

+0

非常感謝,但是您是否有任何關於Quartz配置的工作示例,因此我可以將其與我的相比較? – user1802327

+0

那麼這取決於你是否使用彈簧或不... – willome

+0

是的,我使用彈簧 – user1802327

4

你只需要運行

 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'); 

這實際上爲我工作。至少停止錯誤。

2

這很可能是因爲您從Quartz的新版本獲得表腳本,然後您正在應用您的應用程序。

如果你使用的是Spring,那麼你必須有Quartz 1.8.x.

This is where you can find version 1.8.6

注:內部的tar.gz文件有沒有擴展其他文件。它是一個包含名爲doc的文件夾的zip文件。在那裏你可以找到幾個數據庫引擎的腳本。

不需要手動修改數據。