当前位置:首页 > 开发 > 编程语言 > 搜索 > 正文

Lucene的IndexWriter初始化时报Lock obtain timed out: NativeFSLock

发表于: 2014-07-19   作者:zwllxs   来源:转载   浏览:
摘要: 有一次更新完代码启动系统,系统报如下异常: java.lang.RuntimeException: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\opt\xxxx_index\place\write.lock at com.xxxx.vst.searc
有一次更新完代码启动系统,系统报如下异常:
java.lang.RuntimeException: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\opt\xxxx_index\place\write.lock
	at com.xxxx.vst.search.lucene.search.Searcher.init(Searcher.java:74)
	at com.xxxx.vst.search.lucene.search.Searcher.<init>(Searcher.java:53)
	at com.xxxx.vst.search.lucene.LuceneContext.init(LuceneContext.java:51)
	at com.xxxx.vst.search.listener.LuceneContextIniter.contextInitialized(LuceneContextIniter.java:21)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@D:\opt\xxxx_index\place\write.lock
	at org.apache.lucene.store.Lock.obtain(Lock.java:84)
	at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:644)
	at com.xxxx.vst.search.lucene.search.Searcher.init(Searcher.java:65)
	... 18 more


经查,IndexWriter的构造函数在试图获取另外一个IndexWriter已经加锁的索引目录时就会抛出一个LockObtainFailedException。但是我们系统中并没有多个IndexWriter去指定同一个目录,走查代码才发现,原来是同一个初始化方法调用了两次,一次是spring监听器里调用的,另一个是另一同事测试方便,在static模块里调用的,导致同一个lucene上下文初始化方法被调用两次,建议static模块要慎用,因为它会悄悄神不知鬼不知自己悄悄被调用

Lucene的IndexWriter初始化时报Lock obtain timed out: NativeFSLock

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
出错界面: 解决办法: 出现以上异常主要有两种原因: 1.系统正在写索引未完成之前,应用程序关闭
webservice Connection timed out,当发生webservice的链接超时错误时,我想原因无非就是webclient
启动liferay 6.2 tomcat之后,后台会报一大段的异常信息,主要异常信息如下: 2014-11-21 15:13:29
安装Eclipse的安卓开发环境的时候,安装sdk时报错,出现: 解决办法: 1、选择左上角的Tools 2、选
解决安装eclipse 插件Read timed out 这两天本人在安装nodejs的eclispe插件的过程中,插件下载到一
最近在做SSH的项目,遇到了 org.dom4j.DocumentException: Connection timed out Connection timed
我K! 这个困扰我许久的问题终于解决了…… 报错: 2010-5-18 10:14:15 org.apache.commons.httpclie
<欢迎大家加入iOS开发学习交流群:QQ529560119> 平常工作中的关于XCode出现bug解决之后一定要
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究
环境:SQLServer 2008 R2 + MyEclipse 6.5 + JDK 1.6.24 问题: Java通过JDBC连接SQLServer 2008,
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号