我在XML文件中创建了一组Liquibase脚本。我有大约39个像这样的XML文件。我能够成功执行这些XML文件。
然而,我遇到了一个奇怪的问题,当我的WiFi开启时,每个XML文件大约需要5秒钟才能执行。当我关闭它时,执行时间不到一秒。因此,使用WiFi ON,所有XML文件都需要大约240秒才能完成。大家都会同意这是严重的生产力损失。
我深入研究了这一点,发现在Liquibase代码库中有一个名为liquibase.lockservice.LockService
的类。此类有一个方法acquireLock()
,它尝试更新数据库表DATABASECHANGELOGLOCK
以获取锁。
我发现的查询如下:
UPDATE DATABASECHANGELOGLOCK SET LOCKED = TRUE, LOCKEDBY = 'fe80:0:0:0:9c31:10ff:fe88:4316%9 (fe80:0:0:0:9c31:10ff:fe88:4316%9)', LOCKGRANTED = '2015-11-06 16:33:06.54' WHERE ID = 1 AND LOCKED = FALSE
执行这段代码是消耗这么多时间的根本原因。
有人知道为什么会这样吗?
我的操作系统是Mac Yosemite v10.10.5(14F27)。 (重要提示:我早期版本的Mac上的同事不会遇到这个问题)。我的Java版本是1.7.0_79,我的maven版本是Apache Maven 2.2.1(r801777; 2009-08-06 15:16:01-0400)