Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 57304 invoked from network); 30 Jun 2007 17:01:45 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Jun 2007 17:01:45 -0000 Received: (qmail 22268 invoked by uid 500); 30 Jun 2007 17:01:42 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 22215 invoked by uid 500); 30 Jun 2007 17:01:42 -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 22204 invoked by uid 99); 30 Jun 2007 17:01:42 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Jun 2007 10:01:42 -0700 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; Sat, 30 Jun 2007 10:01:38 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id EC0A87141E8 for ; Sat, 30 Jun 2007 10:01:15 -0700 (PDT) Message-ID: <9353785.1183222875963.JavaMail.jira@brutus> Date: Sat, 30 Jun 2007 10:01:15 -0700 (PDT) From: "Davanum Srinivas (JIRA)" To: axis-dev@ws.apache.org Subject: [jira] Resolved: (AXIS2-2593) Web Service request loop causes many TIME_WAIT Connections & "BindException: Address already in use: connect" In-Reply-To: <18494856.1177531035831.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-2593?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Davanum Srinivas resolved AXIS2-2593. ------------------------------------- Resolution: Fixed Folks, Original problem reported was fixed and the fix is in nightly. If the nightly does not work for you, then please open new bug with *your* testcase. and link this bug to your new bug. The comments have gotten so out of hand that i have no idea whose scenario has what problem and what version they are using etc...Sorry for the trouble of making you open a new test case. thanks, dims > Web Service request loop causes many TIME_WAIT Connections & "BindException: Address already in use: connect" > ------------------------------------------------------------------------------------------------------------- > > Key: AXIS2-2593 > URL: https://issues.apache.org/jira/browse/AXIS2-2593 > 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: David Bueche > Assignee: Davanum Srinivas > Priority: Critical > Attachments: diff.txt, JIRA-935_2593.zip, JIRA_test.tar.gz > > > 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