0

solrj 4 にマルチスレッド アプリケーションがあります。スレッド (最大 25) は HttpSolrServer への 1 つの接続を共有します。各スレッドは 1 つのクエリを実行します。これは、次のメッセージで最終的にクラッシュするまで、しばらくはうまくいきました。

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);
4

0 に答える 0