I'm inserting 10K in a batch (using addBeans method). I read somewhere
in the wiki that it's better to use the same instance of SolrServer
for better performance. Would MultiThreadedConnectionManager help? How
do I use it?

I also wanted to know how can use EmbeddedSolrServer - does my app
needs to be running in the same jvm with Solr webapp?

Thanks,
-vivek

2009/4/9 Noble Paul നോബിള്‍  नोब्ळ् <noble.p...@gmail.com>:
> how many documents are you inserting ?
> may be you can create multiple instances of CommonshttpSolrServer and
> upload in parallel
>
>
> On Thu, Apr 9, 2009 at 11:58 AM, vivek sar <vivex...@gmail.com> wrote:
>> Thanks Shalin and Paul.
>>
>> I'm not using MultipartRequest. I do share the same SolrServer between
>> two threads. I'm not using MultiThreadedHttpConnectionManager. I'm
>> simply using CommonsHttpSolrServer to create the SolrServer. I've also
>> tried StreamingUpdateSolrServer, which works much faster, but does
>> throws "connection reset" exception once in a while.
>>
>> Do I need to use MultiThreadedHttpConnectionManager? I couldn't find
>> anything on it on Wiki.
>>
>> I was also thinking of using EmbeddedSolrServer - in what case would I
>> be able to use it? Does my application and the Solr web app need to
>> run into the same JVM for this to work? How would I use the
>> EmbeddedSolrServer?
>>
>> Thanks,
>> -vivek
>>
>>
>> On Wed, Apr 8, 2009 at 10:46 PM, Shalin Shekhar Mangar
>> <shalinman...@gmail.com> wrote:
>>> Vivek, do you share the same SolrServer instance between your two threads?
>>> If so, are you using the MultiThreadedHttpConnectionManager when creating
>>> the HttpClient instance?
>>>
>>> On Wed, Apr 8, 2009 at 10:13 PM, vivek sar <vivex...@gmail.com> wrote:
>>>
>>>> single thread everything works fine. Two threads are fine too for a
>>>> while and all the sudden problem starts happening.
>>>>
>>>> I tried indexing using REST services as well (instead of Solrj), but
>>>> with that too I get following error after a while,
>>>>
>>>> 2009-04-08 10:04:08,126 ERROR [indexerThreadPool-5] Indexer -
>>>> indexData()-> Failed to index
>>>> java.net.SocketException: Broken pipe
>>>>        at java.net.SocketOutputStream.socketWrite0(Native Method)
>>>>        at
>>>> java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
>>>>        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
>>>>        at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
>>>>        at java.io.FilterOutputStream.write(FilterOutputStream.java:80)
>>>>        at
>>>> org.apache.commons.httpclient.methods.StringRequestEntity.writeRequest(StringRequestEntity.java:145)
>>>>        at
>>>> org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:499)
>>>>         at
>>>> org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
>>>>        at
>>>> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
>>>>        at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
>>>>        at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
>>>>        at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>>>>        at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>>>>
>>>>
>>>> Note, I'm using "simple" lock type. I'd tried "single" type before
>>>> that once caused index corruption so I switched to "simple".
>>>>
>>>> Thanks,
>>>> -vivek
>>>>
>>>> 2009/4/8 Noble Paul നോബിള്‍  नोब्ळ् <noble.p...@gmail.com>:
>>>> > do you see the same problem when you use a single thread?
>>>> >
>>>> > what is the version of SolrJ that you use?
>>>> >
>>>> >
>>>> >
>>>> > On Wed, Apr 8, 2009 at 1:19 PM, vivek sar <vivex...@gmail.com> wrote:
>>>> >> Hi,
>>>> >>
>>>> >>  Any ideas on this issue? I ran into this again - once it starts
>>>> >> happening it keeps happening. One of the thread keeps failing. Here
>>>> >> are my SolrServer settings,
>>>> >>
>>>> >>        int socketTO = 0;
>>>> >>        int connectionTO = 100;
>>>> >>        int maxConnectionPerHost = 10;
>>>> >>        int maxTotalConnection = 50;
>>>> >>        boolean followRedirects = false;
>>>> >>        boolean allowCompression = true;
>>>> >>        int maxRetries = 1;
>>>> >>
>>>> >> Note, I'm using two threads to simultaneously write to the same index.
>>>> >>
>>>> >> org.apache.solr.client.solrj.SolrServerException:
>>>> >> org.apache.commons.httpclient.ProtocolException: Unbuffered entity
>>>> >> enclosing request can not be repeated.
>>>> >>        at
>>>> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:470)
>>>> >>        at
>>>> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
>>>> >>        at
>>>> org.apache.solr.client.solrj.request.UpdateRequest.process(UpdateRequest.java:259)
>>>> >>        at
>>>> org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:48)
>>>> >>        at
>>>> org.apache.solr.client.solrj.SolrServer.addBeans(SolrServer.java:57)
>>>> >>
>>>> >> Thanks,
>>>> >> -vivek
>>>> >>
>>>> >> On Sat, Apr 4, 2009 at 1:07 AM, vivek sar <vivex...@gmail.com> wrote:
>>>> >>> Hi,
>>>> >>>
>>>> >>>  I'm sending 15K records at once using Solrj (server.addBeans(...))
>>>> >>> and have two threads writing to same index. One thread goes fine, but
>>>> >>> the second thread always fails with,
>>>> >>>
>>>> >>>
>>>> >>> org.apache.solr.client.solrj.SolrServerException:
>>>> >>> org.apache.commons.httpclient.ProtocolException: Unbuffered entity
>>>> >>> enclosing request can not be repeated.
>>>> >>>        at
>>>> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:470)
>>>> >>>        at
>>>> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:242)
>>>> >>>        at
>>>> org.apache.solr.client.solrj.request.UpdateRequest.process(UpdateRequest.java:259)
>>>> >>>        at
>>>> org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:48)
>>>> >>>        at
>>>> org.apache.solr.client.solrj.SolrServer.addBeans(SolrServer.java:57)
>>>> >>>        at
>>>> com.apple.afterchat.indexer.solr.handler.BeanIndexHandler.indexData(BeanIndexHandler.java:44)
>>>> >>>        at
>>>> com.apple.afterchat.indexer.Indexer.indexData(Indexer.java:77)
>>>> >>>        at com.apple.afterchat.indexer.Indexer.run(Indexer.java:39)
>>>> >>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>>>> >>>        at
>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>>>> >>>        at java.lang.Thread.run(Thread.java:637)
>>>> >>> Caused by: org.apache.commons.httpclient.ProtocolException: Unbuffered
>>>> >>> entity enclosing request can not be repeated.
>>>> >>>        at
>>>> org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:487)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:2114)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1096)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:398)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
>>>> >>>        at
>>>> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
>>>> >>>        at
>>>> org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:417)
>>>> >>>
>>>> >>> Does anyone know what could be the problem?
>>>> >>>
>>>> >>> Thanks,
>>>> >>> -vivek
>>>> >>>
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > --Noble Paul
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> Regards,
>>> Shalin Shekhar Mangar.
>>>
>>
>
>
>
> --
> --Noble Paul
>

Reply via email to