简介:
最近对网站加入了全站检索功能,暂时使用的是lucene搜索引擎,但在使用过程中遇到了坑,程序在运行一段时间后就会报org.apache.lucene.store.LockObtainFailedException:Lockheldbythisvirtualmachine:异常。
百度之后了解了其根本原因:这个报错的原因是在Lucene中,打开一个IndexWrite之后,就会自动在目录中生成一个
最近对网站加入了全站检索功能,暂时使用的是lucene搜索引擎,但在使用过程中遇到了坑,程序在运行一段时间后就会报org.apache.lucene.store.LockObtainFailedException: Lock held by this virtual machine:异常。
百度之后了解了其根本原因:
这个报错的原因是在Lucene中,打开一个IndexWrite之后,就会自动在目录中生成一个write.lock文件,并将这个文件夹锁住,若对同一个文件夹再打开一个,则会抛出上面的异常。具体报错场景可以参考下面的代码:
所以我们只需要保证同一个文件夹操作只有一个IndexWrite在工作即可,办法很简单,就是方法加锁