我在solrj 4中有一个多线程应用程序。线程(最多25个)共享一个到HttpSolrServer的连接。每个线程都运行一个查询。这个工作正常一段时间,直到它最终崩溃了以下消息:
Jan 12, 2013 12:52:15 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: Retrying request
Jan 12, 2013 12:52:15 PM org.apache.http.impl.client.DefaultRequestDirector tryExecute
INFO: I/O exception (java.net.SocketException) caught when processing request: Connection reset
我想捕获此异常并重置与服务器的连接。我没有用上面的消息得到整个堆栈跟踪,所以我不知道该怎么做。我引用服务器的唯一地方是使用:
进行查询server.query( query )
但是抛出的唯一例外是SolrServerException,我正在处理它。
任何建议都将不胜感激。
仅供参考,这就是我设置初始服务器连接的方式:
server = new HttpSolrServer(url);
server.setSoTimeout(0);
server.setDefaultMaxConnectionsPerHost(50);
server.setMaxTotalConnections(128);