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

Reply via email to