mysql - 指南针 Lucene 索引 PhantomReadLock 错误

标签 mysql tomcat lucene compass-lucene

我正在使用 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/

相关文章:

php - 使用服务器数据库在本地托管我的 wordpress 网站

java - 部署和运行 war 文件

tomcat - Virtualbox:无法从主机(Windows 10)访问 guest (ubuntu 15.05)中的tomcat 8080

elasticsearch - Lucene/Solr搜索文档创建

mysql - 我如何为一个人进行触发更新

php - 选定的下拉数据不会显示在另一个页面中

tomcat - 多个 tomcat 实例更新 - 如何?

java - 向 Luke 添加自定义分析器

java - 自定义Elasticsearch的搜索算法

PHP/JavaScript : Javascript not sending data to PHP