Im not sure that timeout will help you here - I believe it's the timeout on 'creating' the connection.
Try setting the socket timeout (setSoTimeout) - that should let you try sooner. It looks like perhaps the server is timing out and closing the connection. I guess all you can do is timeout reasonably (if it takes too long to we for the exception) and retry. On Fri, Feb 3, 2012 at 3:12 PM, Shawn Heisey <s...@elyograg.org> wrote: > Is the following a reasonable approach to setting a connection timeout > with SolrJ? > > queryCore.getHttpClient().**getHttpConnectionManager().** > getParams() > .setConnectionTimeout(15000); > > Right now I have all my solr server objects sharing a single HttpClient > that gets created using the multithreaded connection manager, where I set > the timeout for all of them. Now I will be letting each server object > create its own HttpClient object, and using the above statement to set the > timeout on each one individually. It'll use up a bunch more memory, as > there are 56 server objects, but maybe it'll work better. The total of 56 > objects comes about from 7 shards, a build core and a live core per shard, > two complete index chains, and for each of those, one server object for > access to CoreAdmin and another for the index. > > The impetus for this, as it's possible I'm stating an XY problem: > Currently I have an occasional problem where SolrJ connections throw an > exception. When it happens, nothing is logged in Solr. My code is smart > enough to notice the problem, send an email alert, and simply try again at > the top of the next minute. The simple explanation is that this is a Linux > networking problem, but I never had any problem like this when I was using > Perl with LWP to keep my index up to date. I sent a message to the list > some time ago on this exception, but I never got a response that helped me > figure it out. > > Caused by: org.apache.solr.client.solrj.**SolrServerException: > java.net.SocketException: Connection reset > > at org.apache.solr.client.solrj.**impl.CommonsHttpSolrServer.** > request(CommonsHttpSolrServer.**java:480) > > at org.apache.solr.client.solrj.**impl.CommonsHttpSolrServer.** > request(CommonsHttpSolrServer.**java:246) > > at org.apache.solr.client.solrj.**request.QueryRequest.process(** > QueryRequest.java:89) > > at org.apache.solr.client.solrj.**SolrServer.query(SolrServer.**java:276) > > at com.newscom.idxbuild.solr.**Core.getCount(Core.java:325) > > ... 3 more > > Caused by: java.net.SocketException: Connection reset > > at java.net.SocketInputStream.**read(SocketInputStream.java:**168) > > at java.io.BufferedInputStream.**fill(BufferedInputStream.java:**218) > > at java.io.BufferedInputStream.**read(BufferedInputStream.java:**237) > > at org.apache.commons.httpclient.**HttpParser.readRawLine(** > HttpParser.java:78) > > at org.apache.commons.httpclient.**HttpParser.readLine(** > HttpParser.java:106) > > at org.apache.commons.httpclient.**HttpConnection.readLine(** > HttpConnection.java:1116) > > at org.apache.commons.httpclient.**MultiThreadedHttpConnectionMan** > ager$HttpConnectionAdapter.**readLine(**MultiThreadedHttpConnectionMan** > ager.java:1413) > > at org.apache.commons.httpclient.**HttpMethodBase.readStatusLine(** > HttpMethodBase.java:1973) > > at org.apache.commons.httpclient.**HttpMethodBase.readResponse(** > HttpMethodBase.java:1735) > > at org.apache.commons.httpclient.**HttpMethodBase.execute(** > HttpMethodBase.java:1098) > > 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:424) > > ... 7 more > > > Thanks, > Shawn > > -- - Mark http://www.lucidimagination.com