This is just a bump. I'm sure that anyone else out there using Axis in
an high-performance environment can easily run into this problem. Should
I log a JIRA issue? Comment on one of the existing JIRAs?

Thanks!

-Jake

Jake Goulding wrote:
> Hey all:
> 
> I wrote in with this problem quite a while back, and a few people tried
> to help. The basic problem is that a stub, when making many requests
> quickly, will eventually fail with a BindException:
> 
> There are a few references to this issue in JIRA:
> 
> https://issues.apache.org/jira/browse/AXIS2-2593 (Fixed)
> https://issues.apache.org/jira/browse/AXIS2-2441 (Fixed)
> https://issues.apache.org/jira/browse/AXIS2-2883 (Open)
> 
> This is a fairly common case in our usage of webservices, and
> particularly hits hard on Windows, which seems to default to only
> allowing ~4000 open sockets at once.
> 
> This is very easy to reproduce, all you need is a webservice that
> returns quickly (a hello world service works well) and a loop in the
> client that calls the service over and over.
> 
> I have tried the following code with Axis 1.1.1 (our current production
> version) as well as Axis 1.3. This code accesses a service on another
> computer, so no sharing of resources should come into play. Perhaps I am
> using Axis incorrectly, and would be glad to be corrected if that is the
> case. I added a call to Stub.cleanup() inside the loop, but it did not
> seem to help.
> 
> Thanks for all your help in advance!
> 
> -Jake
> 
> 
> My sample code:
> 
> Service1Stub s = new Service1Stub();
> for (int i = 0; i < 5000; i++) {
>   Service1Stub.HelloWorldResponse r = null;
>   Service1Stub.HelloWorld h = new Service1Stub.HelloWorld();
>   r = s.HelloWorld(h);
> }
> 
> My exception:
> 
> Exception in thread "main" org.apache.axis2.AxisFault: Address already
> in use: connect
>         at org.apache.axis2.AxisFault.makeFault(AxisFault.java:417)
>         at
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:195)
>         at
> org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)
>         at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)
>         at
> org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)
>         at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
>         at
> org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
>         at
> org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
>         at
> org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
>         at test.Service1Stub.HelloWorld(Service1Stub.java:145)
>         at Loop.main(Loop.java:12)
> Caused by: java.net.BindException: Address already in use: connect
>         at java.net.PlainSocketImpl.socketConnect(Native Method)
>         at java.net.PlainSocketImpl.doConnect(Unknown Source)
>         at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
>         at java.net.PlainSocketImpl.connect(Unknown Source)
>         at java.net.SocksSocketImpl.connect(Unknown Source)
>         at java.net.Socket.connect(Unknown Source)
>         at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>         at java.lang.reflect.Method.invoke(Unknown Source)
>         at
> org.apache.commons.httpclient.protocol.ReflectionSocketFactory.createSocket(ReflectionSocketFactory.java:139)
>         at
> org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:124)
>         at
> org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:706)
>         at
> org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1321)
>         at
> org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:386)
>         at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
>         at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
>         at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
>         at
> org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)
>         at
> org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)
>         ... 9 more
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to