Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 66014 invoked from network); 15 Nov 2007 16:11:07 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Nov 2007 16:11:07 -0000 Received: (qmail 67850 invoked by uid 500); 15 Nov 2007 16:10:52 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 67702 invoked by uid 500); 15 Nov 2007 16:10:52 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 67691 invoked by uid 99); 15 Nov 2007 16:10:51 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Nov 2007 08:10:51 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Nov 2007 16:10:50 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 30E4B714254 for ; Thu, 15 Nov 2007 08:10:43 -0800 (PST) Message-ID: <16813631.1195143043197.JavaMail.jira@brutus> Date: Thu, 15 Nov 2007 08:10:43 -0800 (PST) From: "Tobias Jordan (JIRA)" To: axis-dev@ws.apache.org Subject: [jira] Commented: (AXIS2-2931) CLONE -Web Service request loop causes many TIME_WAIT Connections & "BindException: Address already in use: connect" In-Reply-To: <5374622.1184035864690.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/AXIS2-2931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542809 ] Tobias Jordan commented on AXIS2-2931: -------------------------------------- I am sorry, but the issue still exists in 1.3. I tried to set the AUTO_RELEASE_CONNECTION option in a blocking operations client (together with REUSE_HTTP_CLIENT). This results in 'Attempted read on closed stream' exceptions. > CLONE -Web Service request loop causes many TIME_WAIT Connections & "BindException: Address already in use: connect" > -------------------------------------------------------------------------------------------------------------------- > > Key: AXIS2-2931 > URL: https://issues.apache.org/jira/browse/AXIS2-2931 > Project: Axis 2.0 (Axis2) > Issue Type: Bug > Affects Versions: 1.1.1, nightly > Environment: Windows XP, Tomcat, Axis2 nightly build (also encountered in 1.1.1), JiBX 1.1.3, Microsoft Windows XP [Version 5.1.2600], 126 GB free disk space, 1GB RAM. > Reporter: Gerry Holly > Priority: Critical > > I am performing the following: > - Executing a tight loop calling a singel web service > - Using the same Stub over and over > - Creating the Stub with a custom ConfigurationContext (see below) > - Sending cleanup() to Stub after each message sent (although problem existed even before cleanup() was added) > After approximately 4000 messages have been sent, an AxisFault is generated caused by the following exception (see below for full stack trace): > java.net.BindException: Address already in use: connect > It appears that connections from the client to Axis on Tomcat sometimes (but not always) remain in the TIME_WAIT state for several minutes. There are 1200-1500 TIME_WAIT connections open when the AxisFault is generated. > If I step through the web service messages in a debugger, the problem does not appear to occur, as the system eventually releases the connections after a minute or two. > Also, if I insert a System.gc() in the client code each time it sends a message to the web service (the commented out line of code below), the AxisFault does not occur. I have executed the loop over 60,000 times with the garbage collection included without generating an AxisFault. There were only 400-700 connections in the TIME_WAIT state at a given time, but performance slowed down to a crawl. > Here is the code I am using to create the Stub: > HttpConnectionManagerParams connectionManagerParams = new HttpConnectionManagerParams(); > connectionManagerParams.setTcpNoDelay(true); > connectionManagerParams.setStaleCheckingEnabled(true); > > MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager(); > connectionManager.setParams(connectionManagerParams); > HttpClient httpClient = new HttpClient(connectionManager); > > ConfigurationContext configurationContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(null, null); > configurationContext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE); > configurationContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient); > > stub = new MyServiceStub(configurationContext, target); > > boolean success = true; > while(success) { > success = stub.performService(records); > stub.cleanup(); > // System.gc(); > } > Here is the complete stack trace: > Exception in thread "main" org.apache.axis2.AxisFault: Address already in use: connect > at org.apache.axis2.AxisFault.makeFault(AxisFault.java:377) > at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:179) > at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:73) > at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:310) > at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:202) > at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:446) > at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:330) > at org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:294) > at com.ws.service.MyServiceStub.performService(MyServiceStub.java:300) > at com.ws.client.MyClient.main(MyClient.java:88) > Caused by: java.net.BindException: Address already in use: connect > at java.net.PlainSocketImpl.socketConnect(Native Method) > at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) > at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) > at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) > at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) > at java.net.Socket.connect(Socket.java:519) > at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > 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.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:558) > at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:176) > ... 8 more -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org For additional commands, e-mail: axis-dev-help@ws.apache.org