DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16522>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16522 Allow Axis HTTP 1.1 clients to use Keep-Alive [EMAIL PROTECTED] changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|LATER | ------- Additional Comments From [EMAIL PROTECTED] 2003-03-05 21:30 ------- I think the proposed patch should be rejected as it is not threadsafe. It creates an instance variable on the HTTPSender to hold a socket across requests, but there is only one, stateless instance of HTTPSender in the Axis runtime through which all messages are funneled. The proposed patch does nothing to ensure that one thread doesn't change the socket connection out from under another thread. (imagine two threads entering the invoke() method in close proximity) Even if the socket could be reused, two concurrent threads that want to communicate with the same remote host would collide over the I/O of a single socket. Further, even if the threading problem were resolved, the proposed solution would only keep one socket alive at a time, which is not a very robust/scalable solution. A better approach, IMHO, would be to update the CommonsHTTPSender class so that that class would maintain a reference to a MultiThreadedHttpConnectionManager instance that can manage a pool of heterogeneous connections in a threadsafe manner. I have made the necessary changes to CommonsHTTPSender to make this happen -- the outstanding issue is how to expose the commons-httpclient apis for configuring the pool through the axis framework -- could it be done through WSDD?
