Sangjin Lee wrote:
Yes, if you used a different configuration for the SSL, then it would be another issue.

The questions are:
- Do we want to even allow an option for using a shared connection cache?
The benefit of a shared connection cache is ... just that; connection reuse will be maximized for the given process. However, the drawback is that you may run into unexpected socket configuration/SSL configuration behavior when you hand the connections to a different client instance.
- If we do allow it, what should be the default?
I think *not* sharing the connection cache might be a better default behavior.
Perhaps we should handle this the same way as the thread pools. Externalize the session cache and if you wish to share connections, provide the appropriate session cache to the AsyncHttpClient instance when it's instantiated. If no cache is provided, then connection reuse is disabled for that client instance.
Rick

Thanks,
Sangjin

On 1/14/08, *Jarek Gawor* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    On 1/14/08, Sangjin Lee <[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:
    > It's a good point...  Currently the session cache is global, and all
    > AsyncHttpClient instances are forced to share it.  The main
    thing that
    > concerns me is that as a result the connections will retain all
    the socket
    > properties that came from the AsyncHttpClient instance that
    opened the
    > connection.  This might not be intuitive to say the least.  For
    example, one
    > AsyncHttpClient instance opens a connection with TCP delay
    disabled, and
    > then another instance (this time with TCP delay enabled) comes
    along and
    > picks up this connection for reuse.  Contrary to what it
    expects, it would
    > get a connection with TCP delay disabled.

    Right and this might be a bigger issue for SSL connections where you
    might need to distinguish between cached connections based on the
    client certs, CA certs, or enabled cipher suites (but I'm not sure if
    these options can be set on the AsyncHttpClient).

    Jarek



Reply via email to