Hello,
here are some more details:
Our initialization code:
------------------------------
httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setMaxTotalConnections(configuration.getMaxConnectionsPerHost());
params.setDefaultMaxConnectionsPerHost(configuration.getMaxConnectionsPerHost());
httpConnectionManager.setParams(params);
final HttpClient httpClient = new HttpClient(httpConnectionManager);
rpcServiceClient = new RPCServiceClient();
final Options options = rpcServiceClient.getOptions();
final ConfigurationContext context =
rpcServiceClient.getServiceContext().getConfigurationContext();
context.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
Constants.VALUE_TRUE);
context.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
final EndpointReference targetEPR
= new
EndpointReference(configuration.getWebServiceEndPointAddress());
options.setTo(targetEPR);
options.setCallTransportCleanup(true);
The code for a web service call:
-------------------------------------------
try {
final QName opMethod = new QName("xxxxx", "methodName");
final Object[] args = new Object[] { xxxx };
final Class[] returnTypes = new Class[]{ Boolean.class };
rpcServiceClient.invokeBlocking(opMethod, args, returnTypes);
} catch (AxisFault af) {
logger.error("AxisFault .....", af);
throw buildException(af);
}
finally {
cleanupTransport();
}
where cleanupTransport() is:
---------------------------------------
private void cleanupTransport()
{
AxisFault e = null;
try {
rpcServiceClient.cleanupTransport();
}
catch (AxisFault af) {
logger.error("AxisFault cleaning up the transport", af);
e = af;
}
finally {
try {
final MessageContext m = MessageContext.getCurrentMessageContext();
if (m != null && m.getTransportOut() != null &&
m.getTransportOut().getSender() != null) {
m.getTransportOut().getSender().cleanup(m);
}
}
catch (AxisFault af) {
logger.error("AxisFault cleaning up transport sender", af);
if (e == null) {
e = af;
}
}
finally {
try {
rpcServiceClient.cleanup();
}
catch (AxisFault af) {
logger.error("AxisFault cleaning up the client", af);
if (e == null) {
e = af;
}
}
finally {
httpConnectionManager.closeIdleConnections(0);
}
}
}
if (e != null) {
throw buildException(e);
}
}
Do you guys see something wrong in there..?
Thank you,
Phil
On Tue, May 10, 2011 at 4:57 PM, Philippe Frangioni <[email protected]> wrote:
> Hello all,
> we're using Axis2 1.5.1. Our client makes web service calls every
> second over https (we're doing 2-way SSL). We noticed the number of
> CLOSE_WAIT connections client-side grows over time on our production
> servers...
> This bug looks related:
> https://issues.apache.org/jira/browse/AXIS2-2883
> It was fixed in 1.5.1 but maybe not for https connections: the last
> post from Glen Daniels says no testing was done for https so an issue
> could remain... so I was wondering if testing was done at some point?
> or if someone else has the same problem...?
>
> Thanks,
> Phil
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]