![](/img/trans.png)
[英]What is the potential for data loss (if any) when deleting a write.lock file for Solr, providing that there are no JVM's running which own the lock
[英]How to clear the lock for lucene write.lock file after a jvm crash?
我需要Java lucene启动代码来检查是否有JVM崩溃后留下的锁定的write.lock
文件,如果是,则需要对其进行解锁。
JVM崩溃后,lucene无法获得正确释放write.lock文件的机会。 我需要的是Java lucene代码,以在启动时检查这种情况并顺利处理,而不会抛出任何大的LockObtainFailedException
。
正在使用Lucene版本5。
这应该在Lucene之外通过删除锁定文件来解决。
问题在于,新的Lucene实例无法安全删除锁定文件,因为由于现有实例仍在运行,因此它无法确定锁定文件是否存在。
您需要的是一个外部应用程序,可以测试该实例是否仍然存在。 您可以使用一些简单的脚本来构建它:
kill -0 <pid>
ps ... <pid>
的输出进行模式匹配。 如果您的应用程序已注册为服务(在Linux上),则各种“ init”和服务管理服务(System V init,upstart,systemd)允许您以受控方式停止和启动服务。 您甚至可以将服务配置为在服务崩溃时重新启动。
第三种选择是使用现有的HA(或类似)框架,以在Lucene崩溃时自动重新启动。 现有的框架可能会为您从头开始开发某些东西带来好处。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.