hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roland Weber <ROLWE...@de.ibm.com>
Subject Re: Multithreaded Connection manager question and 400+ servers
Date Mon, 22 Mar 2004 06:59:04 GMT
Hello Andre,

you should try to get some real-life data to decide on
connection management. Like a trace on how many
connections are made to which hosts in what frequency.
Then you can verify whether the frequently used hosts
support connection keep-alive or not.

I agree with Michael's assessment that a single connection
per thread is the best way to go in this situation, unless you
are sure there is some gain in connection reuse.

By implementing a custom connection manager, you
have full control over how long connections are kept
alive, so you can manage that risk.

Servers that cannot handle more than one request per
connection are supposed to send "connection: close"
headers back, and/or use HTTP 1.0. Connections will
only be reused for servers that clearly indicate by the
HTTP protocol version and connection headers that
they are capable of handling another request.


Andre John Mas <amas@expedia.com>
19.03.2004 21:11
Please respond to "Commons HttpClient Project"
        To:     "'Commons HttpClient Project'" 
        Subject:        Multithreaded Connection manager  question and 
400+ servers


At the company I work for we are developing a middleware application 
that routes SOAP messages from one party too another, using HTTP. I
have suggested that we use the MultithreadedConnectionManager, though
at the moment there is some reluctence. The issue seems to be because
we are potentially connecting to 400+ different servers. The danger of
keeping a connection open could mean that there are no connections left
to connect to another server to send the messages. There are also 
worries that some of the parties we connect to have basic HTTP 
implementations (there are a lot of homebrew solutions in C/C++) and 
therefore don't handle more than one query/answer on the same connection.

I should mention that at the moment we create a new HTTPClient for every
connection and the client is not reused across any threads.

Because of the shear volume of traffic we are likely to be handling I am
wanting to find ways of optimizing the use of every API we use, while 
not breaking anything.

Has anyone used HTTPClient in this sort of situation? What is the best 
way to go about using HTTPClient for this? Is there anything else I 
should know?



To unsubscribe, e-mail: 
For additional commands, e-mail: 

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message