On Wed, 2006-01-25 at 17:37 +0000, Tim Putnam wrote:
> Hi all,
> 
> I've got httpclient bolted onto apache axis, and I'm using it in a  
> fairly heavy performance scenario to make a lot of web service  
> requests (its going over SSL).
> 
> I spent a lot of time carefully setting it up, and, under windows, my  
> application works perfectly. The multi-threaded connection manager  
> keeps the connections persistent. Performance is reasonable (although  
> it spends a lot of effort decrypting ssl - any faster implementations  
> out there?)
> 
> Under linux however, using exactly the same code, and the same  
> libraries, I have problems. After a while of usage (particularly  
> during heavy use) the connection manager runs out of connections, and  
> will often end up in a state where it fails. I get lots of  
> ConnectionPoolTimeoutExceptions, and it won't respond. Occasionally  
> it'll recover, usually not.
> 
> Using netstat on windows, I see a neat set of established https  
> connections which remain static. All perfect.
> 
> Using lsof on linux, the connections are always changing, and I get  
> things like the following (on windows I just get established):
> 
> java    7043 root  208u  IPv4    4635195               TCP somewhere: 
> 45761-> somewhere:https (ESTABLISHED)
> java    7043 root  209u  sock        0,5           4635227 can't  
> identify protocol
> java    7043 root  210u  IPv4    4635197               TCP somewhere  
> k:45763-> somewhere:https (ESTABLISHED)
> java    7043 root  211u  IPv4    4635198               TCP somewhere  
> k:45764-> somewhere:https (ESTABLISHED)
> java    7043 root  212u  sock        0,5           4635214 can't  
> identify protocol
> java    7043 root  213u  IPv4    4635202               TCP somewhere: 
> 45768-> somewhere:https (ESTABLISHED)
> java    7043 root  214u  IPv4    4635203               TCP somewhere: 
> 45769-> somewhere https (ESTABLISHED)
> java    7043 root  215u  IPv4    4635204               TCP somewhere: 
> 45770-> somewhere:https (ESTABLISHED)
> java    7043 root  216u  sock        0,5           4635205 can't  
> identify protocol
> java    7043 root  217u  sock        0,5           4635206 can't  
> identify protocol
> java    7043 root  218u  sock        0,5           4635207 can't  
> identify protocol
> 
> 
> The list varies in length. I get what appears to be left over  
> connections, and the number of handles will eventually "peak" above  
> the max number of connections (regardless of what its set at).  
> Occasionally large swathes of them seem to disappear, only to be  
> rapidly replaced by new connections.
> 
> I assume it must be some difference in the way sockets are handled on  
> linux.
> This is running under j2se 1.50_06.
> 
> Any help would be hugely appreciated,
> Tim
> 

Just the very first thing from the top of my head: disable the stale
connection check and see if that makes any difference. For details see
the HttpClient optimization guide:

http://jakarta.apache.org/commons/httpclient/performance.html#Stale%
20connection%20check

I suspect strongly the stale connection check simply does not work with
some JSSE impls + OS combinations

Oleg 

> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to