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: [email protected]
For additional commands, e-mail: [email protected]