Solr - OverlappingFileLockException, когда одновременные коммиты - PullRequest
2 голосов
/ 05 мая 2011

Я использую Solr версии 1.4.0 с Tomcat 6. У меня есть 2 экземпляра Solr, работающих как 2 разных веб-приложения с отдельными папками данных.Мое приложение требует частых коммитов от нескольких клиентов.Я заметил, что, когда более одного клиента пытаются зафиксировать одновременно, эти OverlappingFileLockException начинают появляться.Можно ли что-нибудь сделать, чтобы исправить эту проблему?Пожалуйста, найдите журнал ошибок ниже.Спасибо


HTTP-статус 500 - 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.nelLhanC: Файл (в 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.ddDDDirectUpdateHandler2.java:220) в org.apache.solr.update.processor.RunUpdateProcessor.processAdd (RunUpdateProcessorFactory.java:61) в org.apache.solr.handler.XMLLoader.processUpdate (XMLLoader.java:139) в org.apache.sol..XMLLoader.load (XMLLoader.java:69) в org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:54) в org.apache.solr.handler.RequestHandlerBase.handleRequest. Requestjandler1org.apache.solr.core.SolrCore.execute (SolrCore.java:1317) в org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFilter.java:338) в org.apache.solr.servlet.SolrDisdoilFilterSolrDispatchFilter.java:241) по адресу org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) по адресу org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilina.cat.cat.at.cat.g6) atcat.cat.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) при org.apache.catalina.core.StandardContextValve.invoke (СтандаrdContextValve.java:191) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:127) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.jcatg_acheg at at). at2).core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:298) в org.apache.coyote.http11.Http11Processor.11) в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:588) в org.apache.tomcat.util.net.JIoEndpoint $ Worker.run (JIoEndpoint.java:489) в Java.Thread.run (Thread.java:636)

тип отчет о состоянии

сообщение ноль

java.nio.channels.OverlappingFileLockException atsun.nio.ch.FileChannelImpl $ SharedFileLockTable.checkList (FileChannelImpl.java:1215) в sun.nio.ch.FileChannelImpl $ SharedFileLockTable.add (FileChannelImpl.java:1117) в sun.nionellmpF (.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 at sun.nio.ch.FileChannelImpl $ SharedFileLockTable.checkList (FileChannelImpl.java:1215) at sun.nio.ch.FileChannelImpl $ SharedFileLockTable.add (FileChannelImpl.java:1117) at 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) ), которая помешала ему выполнить этот запрос.

1 Ответ

2 голосов
/ 05 мая 2011

Проблема в том, что вы делаете несколько одновременных коммитов.Не делай этого.Вместо этого переключитесь на autoCommit (либо config , либо используя add с параметром commitWithin ).Таким образом, Solr определит фактические коммиты для вас.

...