I have a running Solr (1.3) server that I want to query with SolrJ, and I'm
running a benchmark that uses a pool of 10 threads to issue 1000 random
queries to the server.  Each query executes 7 searches in parallel.

My first attempt was to use a single instance of CommonsHttpSolrServer,
using the default MultiThreadedHttpConnectionManager, but (as mentioned in
SOLR-861), I quickly ran out of memory as every created thread blocked
indefinitely on MultiThreadedHttpConnectionManager.

Then I tried creating a pool of CommonsHttpSolrServer in which each
SolrServer receives a newly-instantiated SimpleHttpConnectionManager, but
execution of my test resulted in the following:

Caused by: java.lang.IllegalStateException: Unexpected release of an unknown
connection.
        at
org.apache.commons.httpclient.SimpleHttpConnectionManager.releaseConnection(SimpleHttpConnectionManager.java:225)
        at
org.apache.commons.httpclient.HttpConnection.releaseConnection(HttpConnection.java:1179)
        at
org.apache.commons.httpclient.HttpMethodBase.ensureConnectionRelease(HttpMethodBase.java:2430)
        at
org.apache.commons.httpclient.HttpMethodBase.releaseConnection(HttpMethodBase.java:1186)
        at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:394)

Looking into the httpclient code, I can see that this exception is only
thrown when the connection manager attempts to release an HttpConnection
that it is not currently referencing, but since I instantiate connection
managers on a per-thread basis I'm not sure what would cause that.

I assume that SolrJ must be used by someone to execute parallel queries; is
there something obvious (or not) that I'm missing?
-- 
View this message in context: 
http://www.nabble.com/Problems-Issuing-Parallel-Queries-with-SolrJ-tp24522927p24522927.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to