【问题标题】:Solr - OverlappingFileLockException when concurrent commitsSolr - 并发提交时出现 OverlappingFileLockException
【发布时间】:2011-05-05 14:03:06
【问题描述】:

我将 solr 版本 1.4.0 与 tomcat 6 一起使用。我有 2 个 solr 实例作为 2 个不同的 Web 应用程序运行,具有单独的数据文件夹。我的应用程序需要来自多个客户端的频繁提交。我注意到当多个客户端尝试同时提交时,这些 OverlappingFileLockException 开始出现。有什么办法可以纠正这个问题吗?请在下面找到错误日志。谢谢


HTTP 状态 500 - 空

java.nio.channels.OverlappingFileLockException 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215) 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117) 在 sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923) 在 java.nio.channels.FileChannel.tryLock(FileChannel.java:978) 在 org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233) 在 org.apache.lucene.store.Lock.obtain(Lock.java:73) 在 org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550) 在 org.apache.lucene.index.IndexWriter.(IndexWriter.java:1407) 在 org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190) 在 org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98) 在 org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173) 在 org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220) 在 org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) 在 org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139) 在 org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69) 在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1317) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:636)

类型状态报告

消息

java.nio.channels.OverlappingFileLockException 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215) 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117) 在 sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923) 在 java.nio.channels.FileChannel.tryLock(FileChannel.java:978) 在 org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233) 在 org.apache.lucene.store.Lock.obtain(Lock.java:73) 在 org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550) 在 org.apache.lucene.index.IndexWriter.(IndexWriter.java:1407) 在 org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190) 在 org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98) 在 org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173) 在 org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220) 在 org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) 在 org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139) 在 org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69) 在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1317) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:636)

说明服务器遇到内部错误(null

java.nio.channels.OverlappingFileLockException 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1215) 在 sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1117) 在 sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:923) 在 java.nio.channels.FileChannel.tryLock(FileChannel.java:978) 在 org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:233) 在 org.apache.lucene.store.Lock.obtain(Lock.java:73) 在 org.apache.lucene.index.IndexWriter.init(IndexWriter.java:1550) 在 org.apache.lucene.index.IndexWriter.(IndexWriter.java:1407) 在 org.apache.solr.update.SolrIndexWriter.(SolrIndexWriter.java:190) 在 org.apache.solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java:98) 在 org.apache.solr.update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java:173) 在 org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:220) 在 org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:61) 在 org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:139) 在 org.apache.solr.handler.XMLLoader.load(XMLLoader.java:69) 在 org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:54) 在 org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) 在 org.apache.solr.core.SolrCore.execute(SolrCore.java:1317) 在 org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java.lang.Thread.run(Thread.java:636) ) 导致它无法满足此请求。

【问题讨论】:

    标签: java indexing lucene full-text-search solr


    【解决方案1】:

    问题是您正在执行多个并发提交。不要那样做。相反,切换到 autoCommit(通过 configuration 或通过使用 add 和 commitWithin parameter)。这样,Solr 就会为您计算出实际的提交。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多