Lucene的IndexWriter初始化时的LockObtainFailedException

简介:       系统中刚集成了一段Lucene的代码,用来实现简单的建立索引和搜索的功能。可是重新部署程序时,都会出现下面的异常:   Invocation of init method failed; nested exception is org.

      系统中刚集成了一段Lucene的代码,用来实现简单的建立索引和搜索的功能。可是重新部署程序时,都会出现下面的异常:

 

Invocation of init method failed; nested exception is org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/home/developer1/tomcat7/bin/index/write.lock

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) ~[spring-beans-3.0.5.RELEASE.jar:3.0.5.RELEASE]

导致整个程序中的Spring Bean初始化都失败了。

      进到索引目录中,发现里面就是一个write.lock。而IndexWriter的构造函数在试图获取另外一个IndexWriter已经加锁的索引目录时就会抛出一个LockObtainFailedException。

      最直接的想法就是在程序undeploy时释放锁。好在Spring提供了非常方便的方式来实现这个功能。bean需要实现DisposableBean的借口,并且实现其destroy方法:      

 


public void destroy() throws Exception { if(IndexWriter.isLocked(indexDirectory)){ writer.close(); IndexWriter.unlock(indexDirectory); } } 

程序undeploy以后,再去索引目录下write.lock已经不见了。程序也可以顺利重新发布了。

 

目录
相关文章
html中设置背景图片不重复不平铺只显示一张图片
html中设置背景图片不重复不平铺只显示一张图片
775 0
|
Java 数据库连接 mybatis
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
这篇文章讨论了在已使用MyBatis的项目中引入MyBatis-Plus后出现的"Invalid bound statement (not found)"错误,并提供了解决方法,主要是通过修改yml配置文件来解决MyBatis和MyBatis-Plus共存时的冲突问题。
成功解决: Invalid bound statement (not found) 在已经使用mybatis的项目里引入mybatis-plus,结果不能共存的解决
|
安全 中间件 Shell
AWD的那些事
AWD的那些事
479 0
|
人工智能 计算机视觉 开发者
用ModelScope带你制作小动画
本文带你利用ModelScope把实际拍摄的视频转换为动画,基本原理是把视频解码成图像,使用人像卡通化模型对视频逐帧进行卡通化,再把多帧图像合并成视频,从而完成动画生成
49278 18
用ModelScope带你制作小动画
|
JavaScript
iframe子页面获取父页面元素,或父页面获取iframe子页面的元素
iframe子页面获取父页面元素,或父页面获取iframe子页面的元素
522 0
|
SQL Oracle 关系型数据库
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
[已解决]使用sqlplus连接oracle,提示ORA-01034和ORA-27101
802 0
|
数据可视化 Linux 调度
DolphinScheduler【部署 01】分布式可视化工作流任务调度工具DolphinScheduler部署使用实例分享(一篇入门学会使用DolphinScheduler)
DolphinScheduler【部署 01】分布式可视化工作流任务调度工具DolphinScheduler部署使用实例分享(一篇入门学会使用DolphinScheduler)
1543 0
|
Java 应用服务中间件 Linux
Linux服务器安装Tomcat8.5
Linux服务器安装Tomcat8.5
879 0
|
前端开发 IDE 开发工具
webstorm安装使用教程
webstorm安装使用教程
539 0
webstorm安装使用教程
|
搜索推荐 UED 索引
闲鱼技术2022年度白皮书-服务端主题-电商搜索里都有啥?详解闲鱼搜索系统(下)
闲鱼技术2022年度白皮书-服务端主题-电商搜索里都有啥?详解闲鱼搜索系统
546 0

热门文章

最新文章