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

Brecht Yperman commented on AXIS2-2883:
---------------------------------------

Hi, 

I am under the impression this problem is still there for https connections. Is 
this possible?

Thanks

> CLOSE_WAIT slowly building up over the period of time.
> ------------------------------------------------------
>
>                 Key: AXIS2-2883
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2883
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: client-api
>    Affects Versions: 1.1
>         Environment: Operating System : Solaris 
> Axis2 Version : 1.1
> Application Server : weblogic 8.1 SP6
> Using with Cocoon and weblogic DSP
>            Reporter: Lakshmanan Venkatachalam
>            Assignee: Glen Daniels
>            Priority: Critical
>             Fix For: 1.5.1
>
>
> I am experiencing theconstant increase in close wait in the production 
> environment over the period 7 days. 
> We are using Synchronous webservices and we are calling two webservices 24 
> times every day. We have allocated the maximum of 1.5 GB per application 
> instance and we have two application instances. We are utilizing maximum of 
> 250 - 300 MB in average. So Full GC never runs in our environment.
> It seems like the client API ServiceClient.java is not cleaning up the 
> resources associated with this component. We are creating the new 
> ServiceClient component on every call we have for webservices. Though we have 
> called the cleanup() method at the end of every call to the webservices. At 
> times its not getting executed.
> But when we force garabage collection from the application, it was able to 
> clear all the CLOSE_WAIT components. Since we have similar cleanup() call on 
> finalize() method, it is able to do proper clean up when GC is collecting 
> these objects.
> Forcing GC cannot be a solution, I like to hear from axis2 experts on how we 
> can resolve this problem properly and what could be the cause for this 
> happening.
> Below is our client code for your reference.
> private WebServiceResponse invokeWebservice(OMElement inputElement,
>                       Options options) throws WebServiceInvokerException {
>               ServiceClient serviceClient = null;
>               try {
>                       serviceClient = new ServiceClient();
>                       serviceClient.setOptions(options);
>                       // This following line of code is used when we are using
>                       // WS-Addressing. User has to make sure the addressing 
> MAR file in
>                       // class path before enable the following line of code
>                       //
>                       // serviceClient.engageModule(new QName(
>                       // org.apache.axis2.Constants.MODULE_ADDRESSING));
>                       // Invoking synchrounous webservice
>                       //
>                       OMElement result = 
> serviceClient.sendReceive(inputElement);
>                       
>                       OMNode firstOMChild = result.getFirstOMChild();
>                       // Conver the OMelements to XML String
>                       //
>                       Writer stringWriter = new StringWriter();
>                       firstOMChild.serialize(stringWriter);
>             serviceClient.cleanup();
>                       stringWriter.flush();
>                       // Return the Axis2WebserviceResponse
>                       //
>                       return new 
> Axis2WebServiceResponse(stringWriter.toString());
>               } catch (AxisFault afe) {
>                       throw new WebServiceInvokerException(afe);
>               } catch (XMLStreamException xse) {
>                       throw new WebServiceInvokerException(xse);
>               } catch (IOException ioe) {
>                       throw new WebServiceInvokerException(ioe);
>               } finally {
>                       try {
>                               serviceClient.cleanup();
>                 serviceClient=null;
>                       } catch (AxisFault axisFault) {
>                               //
>                       }
>               }
>       }
> }
> options are:
> Options options = new Options();
>               options.setTo(targetEPR);
>               options.setUseSeparateListener(false);
>               options.setAction(wsRequest.getAction());
>               options.setTimeOutInMilliSeconds(600000);
>               options.setTransportInProtocol("http");
>               
> options.setProperty(org.apache.axis2.context.MessageContextConstants.CHUNKED, 
> org.apache.axis2.transport.http.HTTPConstants.HEADER_TRANSFER_ENCODING);
>  

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

Reply via email to