1. ホーム
  2. database

[解決済み] Liquibase ロック - 理由は?

2022-02-12 07:02:17

質問

Oracle サーバに対して、たくさんの liquibase スクリプトを実行すると、このような現象が起こります。SomeComputer は私です。

Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Waiting for changelog lock....
Liquibase Update Failed: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
SEVERE 2013-03-20 16:59:liquibase: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
liquibase.exception.LockException: Could not acquire change log lock.  Currently locked by SomeComputer (192.168.15.X) since 2013-03-20 13:39
        at liquibase.lockservice.LockService.waitForLock(LockService.java:81)
        at liquibase.Liquibase.tag(Liquibase.java:507)
        at liquibase.integration.commandline.Main.doMigration(Main.java:643)
        at liquibase.integration.commandline.Main.main(Main.java:116)

同時セッション数/トランザクション数に達している可能性があるのでしょうか?どなたか心当たりはありませんか?

解決方法を教えてください。

更新アプリケーションを突然停止させると、ロックがかかったままになることがあります。

その後、実行

UPDATE DATABASECHANGELOGLOCK SET LOCKED=0, LOCKGRANTED=null, LOCKEDBY=null where ID=1;

をデータベースと照合するのに役立ちます。

を置き換える必要があるかもしれません。 LOCKED=0LOCKED=FALSE .

また、単純に DATABASECHANGELOGLOCK テーブルを作成すると、再作成されます。