【发布时间】:2017-10-02 08:37:15
【问题描述】:
我有一个
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/XXXXX/User_Index/write.lock
异常,我读到写超时锁应该从默认的 1 秒增加。
(
有趣的是,以前我没有这个异常,但我正在处理一个在项目中使用 Spring 的任务。有更多的竞争交易试图访问索引的可能性很小......?我不认为我认为 Spring 事务配置正确:
<!-- 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>
)
所以我尝试像配置写锁超时
<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 Search(即无法设置 IndexWriter 的值)
如何配置写锁定超时?
Apache Lucene 3.5 休眠搜索 4.1.1
谢谢,
五、
【问题讨论】: