Hi there, I am having a problem with too many open files on my server. I am using HttpClient v.3.0 and the server application is a proxy web app that retrieves the content using HttpClient and passes it back to the user using a Tomcat servlet. I am serving 1000s of different users with several sever requests per second. As time goes on the JVM memory usage steadily increases as the number of open files/sockets in CLOSE_WAIT state on the Linux machine increases. I can see from inspection that many of the open files are socket connection to third party sites opened with HttpClient.
For every method executed I use a shared MultiThreadedHttpConnectionManager and always call method.releaseConnection(). I have instantiated IdleConnectionTimeoutThread and also have another thread that occasionally calls: multiThreadedHttpConnectionManager.closeIdleConnections(idleTimeoutMillis); multiThreadedHttpConnectionManager.deleteClosedConnections(); I have overridden MultiThreadedHttpConnectionManager.releaseConnection () and included a connection.close() in this function but have not seen any results - always steadily increasing open files. I have seen reference to overriding MultiThreadedHttpConnectionManager.releaseConnection () to force sockets to close on this list but nothing concrete as to what to put in the overrided function. I would appreciate any help on this. Regards, David
