我正在使用 MySQL 存储 Compass 索引,在 RHEL 上使用 Tomcat,但是当我关闭 Tomcat 并重新启动索引过程时,在索引时抛出此错误,并且索引失败:
PhantomReadLock unable to obtain lock, write.lock/customer-index
可能因为我关闭了Tomcat,Compass出现了这个错误?经过大量谷歌搜索后,我发现我需要手动删除 write.lock 文件,但我无法在我的 Tomcat 临时文件夹中的任何位置找到锁定文件。我确实在 MySQL 的客户索引表中获得了一 strip 有 write.lock 的记录,因此我删除了该行并且 Compass 开始正确地建立索引并且不再发生 PhantomReadLock 错误。
我只是想澄清一下——这是解决这个 write.lock 问题的正确方法还是我需要做一些其他事情来在关闭 Tomcat 的同时删除锁?
最佳答案
我在使用 Tomcat 时遇到了同样的问题,我找到了这篇文章:http://docs.ngdata.com/daisy-kb/443-daisy.html .
我学到的是,如果您在关闭 Tomcat 时将其杀死(在 Eclipse 中您可以“正确”或不“正确地”执行),write.lock 会保留在那里,而如果您关闭它使用 shutdown.sh/bat 脚本关闭,文件被删除,下次重新启动时一切正常。
尽管这是一个老问题,但我希望它能帮助任何偶然发现它的人。
关于mysql - 指南针 Lucene 索引 PhantomReadLock 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5391803/