我在 Oracle 服务器上运行大量 liquibase 脚本时遇到了这个问题.某台电脑是我.
I get this when running a lot of liquibase-scripts against a Oracle-server. SomeComputer is me.
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)
会不会是达到了同时会话/交易的数量?有人有什么想法吗?
Could it be that the number of simultaneous sessions/transactions are reached? Anyone has any ideas?
有时如果更新应用程序突然停止,那么锁仍然卡住.
Sometimes if the update application is abruptly stopped, then the lock remains stuck.
然后运行
UPDATE DATABASECHANGELOGLOCK SET LOCKED=0, LOCKGRANTED=null, LOCKEDBY=null where ID=1;
对抗数据库有帮助.
您可能还需要将 LOCKED=0
替换为 LOCKED=FALSE
.
You may also need to replace LOCKED=0
with LOCKED=FALSE
.
或者您可以简单地删除 DATABASECHANGELOGLOCK
表,它将被重新创建.
Or you can simply drop the DATABASECHANGELOGLOCK
table, it will be recreated.
这篇关于Liquibase 锁 - 原因?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!