Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
1.1
-
None
-
Operating System : Solaris
Axis2 Version : 1.1
Application Server : weblogic 8.1 SP6
Using with Cocoon and weblogic DSP
Description
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
catch (AxisFault afe)
{ throw new WebServiceInvokerException(afe); }catch (XMLStreamException xse)
{ throw new WebServiceInvokerException(xse); }catch (IOException ioe)
{ throw new WebServiceInvokerException(ioe); } finally {
try
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);
Attachments
Issue Links
- blocks
-
AXIS2-4330 axis2 client machine has many CLOSE_WAIT tcp
- Resolved