Re-use of MultiThreadedConnectionManager in CommonsHTTPSender
-------------------------------------------------------------

         Key: AXIS-2362
         URL: http://issues.apache.org/jira/browse/AXIS-2362
     Project: Apache Axis
        Type: Bug
  Components: Basic Architecture  
    Versions: 1.2, 1.2.1    
    Reporter: Amanda Hopgood


When using CommonsHTTPSender then a new MultiThreadedConnectionManager is 
created for each instance. This means that the MultiThreadedConnectionManager 
is unique per Service object, and this is preventing our connections being 
re-used. The MultiThreadedConnectionManager should be able to be shared between 
different HTTPClient objects, and this request is to alter CommonsHTTPSender so 
that a single instance of MultiThreadedConnectionManager is created and used by 
many instances of CommonsHTTPSender.

In our application we have a Service object per calling thread, and so with the 
current implementation there is one MultiThreadedConnectionManager per thread, 
and so we are getting more connections then we really desire.

The reason we have a Service object per calling thread, was because we have 
seen ConcurrentModificationExceptions if we perform load tests whilst sharing 
Service objects over threads, i.e.
java.util.ConcurrentModificationException
at java.util.WeakHashMap$HashIterator.nextEntry(WeakHashMap.java:726)
at java.util.WeakHashMap$KeyIterator.next(WeakHashMap.java:759)
at 
org.apache.axis.attachments.ManagedMemoryDataSource.delete(ManagedMemoryDataSource.java:454)
 at 
org.apache.axis.attachments.AttachmentsImpl.writeContentToStream(AttachmentsImpl.java:476)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to