6

私は Quartz スケジューラを初めて使用し、Spring で使用しています ... Quartz 構成を含む XML ファイルを実行しようとすると、次のような例外が発生しました。

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

テーブル QRTZ_LOCKS には SCHED_NAME と LOCK_NAME の 2 つのフィールドが含まれていることがわかり、データベースで次のステートメントを実行する必要があることがわかりました。

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

しかし、自分の sched_name が何かわかりません ??

何か案が ??

4

4 に答える 4

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

それは実際に私にとってはうまくいきました。少なくともエラーを停止しました。

于 2012-11-13T15:47:40.950 に答える
2

これは、Quartzの新しいバージョンからテーブルスクリプトを取得してから、アプリケーションに適用していることが原因である可能性があります。

Springを使用している場合は、Quartz1.8.xが必要です。

これは、バージョン1.8.6を見つけることができる場所です

注:そのtar.gzファイル内には、拡張子のない別のファイルがあります。docという名前のフォルダを含むzipファイルです。そこには、いくつかのデータベースエンジンのスクリプトがあります。

データを手動で変更する必要はありません。

于 2012-11-19T18:08:13.947 に答える
1

*my_sched_name* はテーブルqrtz_job_details(sched_name) から取得できます。通常、これらのテーブルを手動で挿入/更新する必要がないため、クォーツの構成/展開に問題があるに違いありません。

于 2012-11-12T09:03:30.403 に答える