hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rangeli nepal <rangeli.ne...@gmail.com>
Subject growing CLOSE_WAIT
Date Mon, 24 Oct 2011 23:06:12 GMT
I am currently using httpcomponents-client-4.1.2 to connect to tomcat
server hosted on a linux machine.

As suggested by user guide I am taking following steps. Let me know if
I am missing something
Thanks in advance.
rn

1. I am using ThreadSafeClientConnManager.


schemeRegistry = new SchemeRegistry();

	   schemeRegistry.register(new Scheme("http", httpurl.getPort(),
PlainSocketFactory.getSocketFactory()));
	   threadSaftClientConnManager=  new
ThreadSafeClientConnManager(schemeRegistry,0,  TimeUnit.DAYS);
	// Increase max total connection to 200
	   threadSaftClientConnManager.setMaxTotal(200);
	   // Increase default max connection per route to 20
	   threadSaftClientConnManager.setDefaultMaxPerRoute(20);
	   // Increase max connections for localhost:80 to 50
	   HttpHost localhost = new
HttpHost(this.httpurl.getHost(),this.httpurl.getPort());
	   threadSaftClientConnManager.setMaxForRoute(new HttpRoute(localhost), 50);

2. I use a monitoring thread that does something like this:

                             wait(30000);
	                    // Close expired connections
	                    connMgr.closeExpiredConnections();
	                    // Optionally, close connections
	                    // that have been idle longer than 30 sec
	                    connMgr.closeIdleConnections(9, TimeUnit.SECONDS);

3. I was using KeepAliveStrategy. But disabling it giving me better
CLOSE_WAIT rate.

4. I set following parameters:

HttpParams httpParams = new BasicHttpParams();
		HttpConnectionParams.setConnectionTimeout(httpParams, 5000);

		HttpConnectionParams.setSoTimeout(httpParams, 5000);

		//ConnManagerParams.setMaxTotalConnections(httpParams, 5000);

		HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);
		httpClient.getParams().setParameter("http.conn-manager.timeout", 120000L);

		//httpClient.getParams().setParameter("http.protocol.wait-for-continue",
10000L);

	    httpClient.getParams().setParameter("http.tcp.nodelay", true);

5. I constantly see logs like follwing:

- -- --------2011-10-24 23:03:14,987 DEBUG [Thread-16]:
[ThreadSafeClientConnManager] Closing expired connections
 - -- --------2011-10-24 23:03:14,987 DEBUG [Thread-16]:
[ConnPoolByRoute] Closing expired connections
 - -- --------2011-10-24 23:03:14,987 DEBUG [Thread-16]:
[ThreadSafeClientConnManager] Closing connections idle longer than 9
SECONDS
 - -- --------2011-10-24 23:03:14,987 DEBUG [Thread-16]:
[ConnPoolByRoute] Closing connections idle longer than 9 SECONDS
 - -- --------2011-10-24 23:03:14,987 INFO  [Thread-16]:
[DeceCacheClient] Testing Http Threads of cache for expired or idle
status

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Mime
View raw message