Oops! I didn't notice these methods. However, for me, it's convenient to
have the constructor so that I can easily create SolrServer instance in
Spring.

On Dec 19, 2007 12:19 AM, Will Johnson <[EMAIL PROTECTED]> wrote:

> Fyi:  the CommonsHttpSolrServer already has method to do all of those
> things:
>
>  /** set connectionTimeout on the underlying
> MultiThreadedHttpConnectionManager */
>  public void setConnectionTimeout(int timeout) {
>    _connectionManager.getParams().setConnectionTimeout(timeout);
>  }
>
>  /** set maxConnectionsPerHost on the underlying
> MultiThreadedHttpConnectionManager */
>  public void setDefaultMaxConnectionsPerHost(int connections) {
>
>
> _connectionManager.getParams().setDefaultMaxConnectionsPerHost(connections);
>  }
>
>  /** set maxTotalConnection on the underlying
> MultiThreadedHttpConnectionManager */
>  public void setMaxTotalConnections(int connections) {
>    _connectionManager.getParams().setMaxTotalConnections(connections);
>  }
>
>
> You can also get the underlying connection factory if you want to do other
> crazier stuff.
>
>  public MultiThreadedHttpConnectionManager getConnectionManager() {
>    return _connectionManager;
>  }
>
>
>
> - will
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Yonik
> Seeley
> Sent: Monday, December 17, 2007 9:18 PM
> To: solr-dev@lucene.apache.org
> Subject: Re: Resource contention problem in Solrj
>
> Excellent!  Thanks for diagnosing this!
> -Yonik
>
> On Dec 17, 2007 9:00 PM, climbingrose <[EMAIL PROTECTED]> wrote:
> > There seems to be resource contention problem with Solrj under load. To
> > reproduce the problem: set up a sample webapp with solrj connect to a
> HTTP
> > Solr instance and hammer the webapp with Apache ab (say 10 concurrent
> > connection with 100 requests). You'll notice that the webapp's servlet
> > container quickly consumes 100% CPU and stays there unless you restart
> it.
> I
> > can confirm that this happens with both Tomcat and Jetty. Meanwhile, the
> > server that Solr is deployed on seems to be running fine.
> >
> > From this observation, I suspect that Solrj has connection contention
> > problem. And this seems to be the case if you look at
> CommonHttpSolrServer.
> > This class uses MultiThreadedHttpConnectionManager which has
> > maxConnectionsPerHost set to 2 by default. When the number of thread
> > increases, this is obviously not enough and leads to connection
> contention
> > problem. I quickly solve problem by adding another constructor to
> > CommonHttpSolrServer that allows setting maxConnectionsPerHost and
> > maxTotalConnections:
> >
> > public CommonsHttpSolrServer(int maxConsPerHost, int maxTotalCons,
> String
> > solrServerUrl) throws MalformedURLException {
> >     this(solrServerUrl);
> >     this.maxConsPerHost = maxConsPerHost;
> >     this.maxTotalCons = maxTotalCons;
> >     HttpConnectionManagerParams params = new
> HttpConnectionManagerParams();
> >     params.setDefaultMaxConnectionsPerHost(maxConsPerHost);
> >     params.setMaxTotalConnections(maxTotalCons);
> >     _connectionManager.setParams(params);
> > }
> >
> > Hope this information would help others.
> >
> > --
> > Regards,
> >
> > Cuong Hoang
> >
>
>


-- 
Regards,

Cuong Hoang

Reply via email to