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]

Reply via email to