Michele,
I could reproduce this behaviour even with a single thread inside a loop. After
4000 calls, Axis2 crashed.
By the way, how can I stop local listener? I think this might be a security
risk (if not needed).
My sample code:
ConfigurationContext configurationContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(null,
null);
HttpClient httpClient = new HttpClient(new
MultiThreadedHttpConnectionManager());
configurationContext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
Boolean.TRUE);
configurationContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT,
httpClient);
TestStub stub = new TestStub(configurationContext, SVC_URL);
Data param = new Data();
param.setData(getData());
try {
for (int i = 0; i < 10000; i++) {
stub.call(param);
if (i % 100 == 0) {
System.out.println(i);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
stub.cleanup();
}
Console:
...
3600
3700
3800
3900
4000
30.03.2007 12:00:54 org.apache.commons.httpclient.HttpMethodDirector
executeWithRetry
INFO: I/O exception (java.net.BindException) caught when processing request:
Address already in use: connect
30.03.2007 12:00:54 org.apache.commons.httpclient.HttpMethodDirector
executeWithRetry
INFO: Retrying request
...
-------- Original-Nachricht --------
Datum: Fri, 30 Mar 2007 10:45:44 +0100
Von: Michele Mazzucco <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re: java.net.BindException
> Christoph,
>
> on the client start a local http server is started to receive the
> response.
> Do you use the same ServiceClient to send your requests? What about the
> ConfigurationContext? Do you clean up the ServiceClient(s) when you are
> done? Finally remember that if you are using a custom
> ConfigurationContext you have to manually close the connection listener
> (it's cleaned only if you use the default ConfigurationContext).
>
> configurationContext.getListenerManager ().stop();
>
> Be careful because there's only one connection listener for each
> ConfigurationContext.
>
> Michele
>
> On Fri, 2007-03-30 at 10:52 +0200, [EMAIL PROTECTED] wrote:
> > Thanks for response. Your suggested solution does not work. After
> thousands of calls the Bind exception appears again. Then I have to wait a
> little
> (even with JVM restart) for next successful runs.
> > I think, that socket handling of HttpClient is the problem. No local
> server is started.
> > Please could you investigate this problem. I feel very uncomfortable
> about this behaviour, which might just raise in production under heavy load.
> >
> > I have created a JIRA issue.
> >
> > Christoph
> >
> > I guess the reason is explained here http://wso2.org/library/165
> > Something like this should solve the problem
> >
> > ConfigurationContext configurationContext = ConfigurationContextFactory
> > .createConfigurationContextFromFileSystem(null,
> > null);
> >
> > HttpClient httpClient = new HttpClient(
> > new MultiThreadedHttpConnectionManager());
> >
> >
> > configurationContext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
> > Boolean.TRUE);
> > configurationContext
> > .setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
> >
> >
> > Michele
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]