1

我正在使用 MySQL 存储 Compass 索引,Tomcat 在 RHEL 上,但是当我关闭 Tomcat 并重新启动索引过程时,索引时抛出此错误,并且索引失败:

PhantomReadLock 无法获取锁,write.lock/customer-index

可能是因为我关闭了Tomcat,Compass出现了这个错误?经过大量谷歌搜索,我发现我需要手动删除 write.lock 文件,但在我的 Tomcat 临时文件夹中的任何地方都找不到锁定文件。我确实在 MySQL 的客户索引表中获得了 write.lock 记录,因此我删除了该行,Compass 开始正确索引,并且 PhantomReadLock 错误不再发生。

我只是想澄清一下——这是解决这个 write.lock 问题的正确方法,还是在关闭 Tomcat 时我需要做其他事情来删除锁?

4

1 回答 1

1

我在使用 Tomcat 时遇到了同样的问题,我找到了这篇文章:http ://docs.ngdata.com/daisy-kb/443-daisy.html 。

我学到的是,如果您在关闭 Tomcat 时将其杀死(在 Eclipse 中,您可以“正确”地执行此操作),write.lock仍然存在,而如果您使用 shutdown.sh/bat 脚本将其关闭,该文件被删除,下次重新启动是干净的。

尽管这是一个老问题,但我希望它可以帮助任何偶然发现它的人。

于 2013-02-08T13:36:37.737 回答