[ http://issues.apache.org/jira/browse/AXIS-2030?page=all ] Jarek Gawor resolved AXIS-2030: -------------------------------
Resolution: Fixed The CommonsHTTPSender was updated to reuse the MultiThreadedConnectionManager. > Singleton getInstance returns new instances each time ? > ------------------------------------------------------- > > Key: AXIS-2030 > URL: http://issues.apache.org/jira/browse/AXIS-2030 > Project: Apache Axis > Type: Bug > Components: Basic Architecture > Versions: 1.2 > Environment: Linux AS2/AS3. Tomcat4. Axis 1.2. > Reporter: ultan ocarroll > Assignee: Jayachandra Sekhara Rao Sunkara > > We have an application using Axis1.2 as a client for a SOAP service. > Over 24 hour periods of time we see many many tcp connections (40000+) being > left open to that service. The connections are in ESTABLISHED state. What is > a critical problem is that on restart, our servers very often report "too > many open files" and fail to start or start with spurious errors. > I suspected originally that our version of Commons HttpClient (3.0rc2) was at > fault and found a reported issue very similar to ours > (http://mail-archives.apache.org/mod_mbox/jakarta-httpclient-user/200505.mbox/[EMAIL > PROTECTED] ). > However, the solution is not relevant to our situation (it recommends > reverting JDK version from 1.5 to 1.4.2 - we do this already). > Looking at the HttpClient code I cant see where the problem is arising. I > havent yet contacted the team behind HttpClient as during investigations Ive > come across what seems to be a problem with singleton instantiation in the > CommonsHttpSender. > I noticed when I set a breakpoint in CommonsHttpSender that I get a new > instance for each request and as a result get a new > MultiThreadedHttpConnectionManager on each request, each with a new > connection pool. Im not sure where in the stack this singleton should be > managed, but surely there should only be one instance of CommonsHttpSender or > its constructor should get a singleton reference to > MultiThreadedHttpConnectionManager ? Or am I missing something here ? > Heres the stack trace, if thats any help : > CommonsHTTPSender.initialize() line: 97 > CommonsHTTPSender.<init>() line: 88 > NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not > available [native method] > NativeConstructorAccessorImpl.newInstance(Object[]) line: 39 > DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 27 > Constructor.newInstance(Object[]) line: 274 > Class.newInstance0() line: 308 > Class.newInstance() line: 261 > WSDDTransport(WSDDTargetedChain).makeNewInstance(EngineConfiguration) line: > 157 > WSDDTransport(WSDDDeployableItem).getNewInstance(EngineConfiguration) line: > 274 > WSDDTransport(WSDDDeployableItem).getInstance(EngineConfiguration) line: 260 > WSDDDeployment.getTransport(QName) line: 441 > FileProvider.getTransport(QName) line: 257 > AxisClient(AxisEngine).getTransport(String) line: 332 > AxisClient.invoke(MessageContext) line: 163 -- 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