axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sameera Jayasoma (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-4898) Thread named [MultiThreadedHttpConnectionManager cleanup] not cleaned up properly
Date Thu, 06 Jan 2011 06:29:46 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-4898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12978163#action_12978163
] 

Sameera Jayasoma commented on AXIS2-4898:
-----------------------------------------

Hi Andreas,

Eventhough we tried to invoke a non-existent service in an existing Web server,  this issues
cannot be reproduced.

Thanks
Sameera



> Thread named [MultiThreadedHttpConnectionManager cleanup] not cleaned up properly
> ---------------------------------------------------------------------------------
>
>                 Key: AXIS2-4898
>                 URL: https://issues.apache.org/jira/browse/AXIS2-4898
>             Project: Axis2
>          Issue Type: Bug
>          Components: client-api
>    Affects Versions: 1.5.1
>         Environment: Operating system Windows and Linux
> Application Server: Tomcat 6.0.29
> Axis2 version 1.5.1
> Client created with ADB
>            Reporter: Chris Emerson
>            Priority: Critical
>         Attachments: version2.zip
>
>
> Shutting down Tomcat 6.0.29 gives the following error:
> Nov 23, 2010 4:42:18 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
> SEVERE: A web application appears to have started a thread named [MultiThreadedHttpConnectionManager
cleanup] but has failed to stop it. This is very likely to create a memory leak.
> This error only happens when one of our Axis2 web services is called through a generated
ADB client stub.  It appears to never close this thread.
> Our current configuration on the web application:
>    /**
>     * The configureServiceStub method sets the web service client settings and
>     *  for the web service call. 
>     * 
>     * @param params WebServiceParameters
>     * 
>     * @throws Exception
>     */
>    private void configureServiceStub(WebServiceParameters params) throws Exception
>    {
>       // check if connection manager already established
>       if(connectionManager == null)
>       {
>          connectionManager = new MultiThreadedHttpConnectionManager();
>          connectionManagerParams = new HttpConnectionManagerParams();
>          connectionManagerParams.setDefaultMaxConnectionsPerHost(2);
>          connectionManagerParams.setTcpNoDelay(true);
>          connectionManagerParams.setStaleCheckingEnabled(true);
>          connectionManagerParams.setLinger(0);
>          connectionManager.setParams(connectionManagerParams);
>          httpClient = new HttpClient(connectionManager);
>          
>          configcontext = ConfigurationContextFactory.createDefaultConfigurationContext();
>          configcontext.setThreadPool(new ThreadPool(1, 3));
>          configcontext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
>                                    Boolean.TRUE);
>          configcontext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
>          configcontext.setProperty(HTTPConstants.AUTO_RELEASE_CONNECTION, httpClient);
>       }           
>       
>       if(employeeStub == null)
>       {
>          employeeStub = new EmployeeServiceSMARTStub(configcontext,
>                                                      params.getLocalServiceUrl()
>                                                      + "EmployeeServiceSMART.EmployeeServiceSMARTHttpSoap12Endpoint/");
>          
>          employeeStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(2 * 60
* 1000);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT,
>                                                            30000);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
>                                                            30000);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
>                                                            Boolean.TRUE);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.AUTO_RELEASE_CONNECTION,
>                                                            Boolean.TRUE);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED,
>                                                            Boolean.TRUE);
>          employeeStub._getServiceClient().getOptions().setCallTransportCleanup(true);
>          employeeStub._getServiceClient().getOptions().setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION,
>                                  HTTPConstants.HEADER_PROTOCOL_10);
>       }
>    }
> After each call we call the following code:
>       finally
>       {
>          // clean up all hanging threads and stop connection manager        
>          if(employeeStub._getServiceClient() != null)
>          {
>             try
>             {
>                employeeStub._getServiceClient().cleanupTransport();
>             }
>             catch(Exception e)
>             {
>                e.printStackTrace();
>             }
>             try
>             {
>                employeeStub._getServiceClient().cleanup();
>                employeeStub.cleanup();
>             }
>             catch(Exception e)
>             {
>                e.printStackTrace();
>             }
>          }
>          
>          connectionManager.closeIdleConnections(0);
>          connectionManager.shutdown();
>          connectionManager = null;
>          employeeStub = null;
>       }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message