In Lucene (hence Solr) only one IndexWriter may write to an index at a time (by design), so pointing two separate Solr instances at the same index will result in the lock issue you describe.

I guess the question back to you is, why do you need two web apps pointing to the same Solr data directory? Why can't your two webapps share a single Solr instance?

On Dec 6, 2008, at 5:45 AM, Rinesh1 wrote:


Hi,
   Just adding some additional steps I have tried.
   I have tried the following scenarios for testing this.

    FIRST

   1.Index 5000 docs to solr using the FIRST web app
    2.send a commit command from the SECOND web app
    3.Tried indexing docs from the SECOND web app.
            LOCKING ISSUE EXISTS

   SECOND
    1.Index 5000 docs to solr using the FIRST web app
    2.send a commit command from the FIRST web app
    3.Tried indexing docs from the SECOND web app.
    THERE IS NO LOCKING ISSUE NOW

   Is commiting the only solution .Is there any other solution

Regards,
Rinesh

Rinesh1 wrote:

Hi,
    Please help me with the following scenario.
    I have a solr data folder "SOLR_DATA"

    I have 2 web applications solr1 and solr 2 referring to the same
SOLR_DATA folder.
    I am trying to index data using solr1/update and solr2/update
sequentially.

   Indexing using the first web app happens fine.
But when I try using the second web app, I am getting the following
error
SEVERE: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: [EMAIL PROTECTED]:\apache-solr-1.2.0\example\solr\data\index \writ
e.lock
       at org.apache.lucene.store.Lock.obtain(Lock.java:70)
at org.apache.lucene.index.IndexWriter.init(IndexWriter.java: 579)
       at
org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:341)
       at
org.apache.solr.update.SolrIndexWriter.<init>(SolrIndexWriter.java: 65)
       at
org .apache .solr.update.UpdateHandler.createMainIndexWriter(UpdateHandler.java: 120)
       at
org .apache .solr .update.DirectUpdateHandler2.openWriter(DirectUpdateHandler2.java: 181)
       at
org .apache .solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java: 259)
       at
org .apache .solr .handler .XmlUpdateRequestHandler.update(XmlUpdateRequestHandler.java:166)
       at
org .apache .solr .handler .XmlUpdateRequestHandler .handleRequestBody(XmlUpdateRequestHandler.java:84)
       at
org .apache .solr .handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:77)
       at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)
       at
org .apache .solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:191)
       at
org .apache .solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java: 159)
       at
org .apache .catalina .core .ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:235)
       at
org .apache .catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org .jboss .web .tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
       at
org .apache .catalina .core .ApplicationFilterChain .internalDoFilter(ApplicationFilterChain.java:235)
       at
org .apache .catalina .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java: 206)
       at
org .apache .catalina .core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
       at
org .apache .catalina .core.StandardContextValve.invoke(StandardContextValve.java:175)
       at
org .jboss .web .tomcat .security .SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
       at
org .jboss .web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java: 84)
       at
org .apache .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
       at
org .apache .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
       at
org .jboss .web .tomcat .service .jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
       at
org .apache .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: 109)
       at
org .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 241)
       at
org .apache.coyote.http11.Http11Processor.process(Http11Processor.java: 844)
       at
org.apache.coyote.http11.Http11Protocol $Http11ConnectionHandler.process(Http11Protocol.java:580)
       at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java: 447)
       at java.lang.Thread.run(Thread.java:595)

      Looks like there is some locking happening .
      How can I unlock it.Is it because I have not committed the data
after indexing from the first web application.
This was mainly to test whether N web applications can share same
SOLR_DATA folder.

      Please provide your inputs .
Thanks in advance,
Rinesh Kumar.






--
View this message in context: 
http://www.nabble.com/Solr-Locking-Issue-tp20868016p20868783.html
Sent from the Solr - User mailing list archive at Nabble.com.


--------------------------
Grant Ingersoll

Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ










Reply via email to