首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate Search & Lucene -设置写入超时锁定

问Hibernate Search & Lucene -设置写入超时锁定
EN

Stack Overflow用户
提问于 2017-10-02 16:37:15
回答 1查看 407关注 0票数 0

我有一个

代码语言:javascript
复制
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/XXXXX/User_Index/write.lock

异常,我读到写超时锁定应该从默认的1秒增加。

(

有趣的是,之前我没有这个异常,但我正在处理一个任务,以便在项目中使用Spring。有很小的可能性,有更多的竞争事务试图访问索引...?我不认为Spring事务配置正确:

代码语言:javascript
复制
<!-- for the @Transactional annotations -->
<tx:annotation-driven />
<context:component-scan base-package="XXX.audit, XXX.authorization, XXX.policy, XXX.printing, XXX.provisioning, XXX.service.plainspring" />
<!-- defining Transaction Manager for Spring -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="dataSource" ref="dataSource" />
    <property name="sessionFactory" ref="sessionFactory" />
</bean> 

)

因此,我尝试将写锁定超时配置为

代码语言:javascript
复制
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" lazy-init="true">
    ...
    <property name="hibernateProperties">
        <props>
            ...
            <prop key="hibernate.search.lucene_version">LUCENE_35</prop>
            <prop key="hibernate.search.default.indexwriter.writeLockTimeout">20000</prop>
            ...
    </property>
    <property name="dataSource">
        <ref bean="dataSource"/>
    </property>
</bean>

但没有成功。Apache Lucene没有配置文件。也没有Lucene代码,只使用Hibernate搜索(即不可能设置IndexWriter的值)

如何配置写锁定超时?

Apache Lucene 3.5 Hibernate Search 4.1.1

谢谢,

V。

EN

回答 1

Stack Overflow用户

发布于 2017-10-02 17:19:36

没有配置IndexWriter锁定超时的选项,因为永远不需要这样做。

如果您看到发生这样的超时,通常是由于以下两种原因之一:

  • 在索引目录中有一个锁文件,这是崩溃的JVM
  • 留下的配置不适合应用程序的体系结构

首先检查剩下的场景:关闭您的应用程序,并查看是否有文件名为write.lock。如果应用程序没有运行,则可以安全地删除此文件。

如果不是这样,那么您可能有两个不同的Hibernate Search实例试图使用相同的索引目录,并且都试图写入该目录。这不是一个有效的配置,您会得到异常,因为索引已经被其他实例锁定;增加锁定超时只会让您等待很长一段时间-可能直到其他应用程序关闭。

不要在应用程序之间共享索引;如果确实需要这样做,请查看手册中的基于JMS的后端或其他非默认后端,这些后端允许多个应用程序共享一个IndexWriter。

最后,请考虑升级。这些版本都非常旧。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46522117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档