java - 由于进程停止错误,Apache Lucene 在启动时出现 FileNotFoundException

标签 java jboss lucene

已回答

客户端进行维护后无法启动应用程序;部署新的 WAR 或简单的属性更新。在 bean 初始化期间启动时,它们将收到以下内容:

Caused by: java.io.FileNotFoundException: /app/app-directory/servers/app-workdir/lucene-index/_3gp1.si (No such file or directory)
at java.io.RandomAccessFile.open(Native Method) [rt.jar:1.7.0_80]
at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241) [rt.jar:1.7.0_80]
at org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:193) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.codecs.lucene46.Lucene46SegmentInfoReader.read(Lucene46SegmentInfoReader.java:49) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:340) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:404) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:843) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:694) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:400) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:746) [lucene-core-4.7.2.jar:4.7.2 1586229 - rmuir - 2014-04-10 09:00:35]
at proprietary class
at proprietary class
... 50 more

最佳答案

确定的根本原因是客户端开发应用程序停止 shell 脚本的方式,该脚本发出 SIGKILL/“kill -9”,当 Lucene 正在更新索引时终止应用程序服务器。

相反,使用 SIGTERM/"kill -15"向应用程序发出信号是我们在内部执行此操作的方式,也是我们建议客户端执行停止的方式。这应该允许 Lucene 完成任何运行中的进程并且不会损坏索引。

导致我们出现这种情况的原因是 server.log 中不存在停止消息

09:10:41,354 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5) JBAS015877: Stopped deployment sqljdbc4.jar (runtime-name: sqljdbc4.jar) in 18998ms
09:10:41,525 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015877: Stopped deployment ojdbc6.jar (runtime-name: ojdbc6.jar) in 19169ms

关于java - 由于进程停止错误,Apache Lucene 在启动时出现 FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39664630/

相关文章:

java - 如何在 Spring 中向请求上下文添加错误而不是抛出异常

java - ObjectMapper 无法反序列化 - 无法反序列化 START_ARRAY token 之外的 .... 实例

java - 如何使用 Java Swing 库实现缩放面板

java - 在 Jboss 上从 STS(Spring Tool Suite)3 部署 WAR 返回 404

search - 使用 Solr 进行类似亚马逊的搜索

java - GitHub - Travis ci 工作被拒绝

java - 在我的 JBOSS JMX 代理 View 中检查 bean 失败并出现错误

jsf - Wildfly 以错误开始。 javax.faces.FacesException : Unable to find CDI BeanManager

c# - 如何在 Lucene.Net 中使用 Whitespaceanalyzer 和 LowerCase 过滤器创建自己的分析器?

java - 维基百科Tokenizer Lucene