4 Replies Latest reply on Aug 5, 2003 10:09 AM by rcostanzo

    Cannot connect more than 20 connections on WinXP JBoss 3.2.1

    yatesco

      Hi,

      I have a default installation of JBoss 3.2.1 running on WinXP and Sun j2sdk1.4.2

      I have a web app which sends a message to an EJB (session facade) which logs a message in the DB (MsSQL 2000)

      Anyway, if I setup jmeter or OpenSTA or Junit perf to connect more than 20 times, I get :

      java.net.ConnectException: Connection refused: connect
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
      at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
      at java.net.Socket.connect(Socket.java:452)
      at java.net.Socket.connect(Socket.java:402)
      at java.net.Socket.(Socket.java:309)
      at java.net.Socket.(Socket.java:124)
      at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:286)
      at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:318)
      at org.apache.cactus.client.HttpClientConnectionHelper.dispatch24_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):164)
      at org.apache.cactus.client.HttpClientConnectionHelper.around24_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236)
      at org.apache.cactus.client.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):106)
      at org.apache.cactus.client.AbstractHttpClient.callRunTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):186)
      at org.apache.cactus.client.AbstractHttpClient.dispatch2_doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):109)
      at org.apache.cactus.client.AbstractHttpClient.around2_doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236)
      at org.apache.cactus.client.AbstractHttpClient.doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):104)
      at org.apache.cactus.AbstractWebTestCase.runGenericTest(AbstractWebTestCase.java:260)
      at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:133)
      at org.apache.cactus.AbstractTestCase.runBare(AbstractTestCase.java:195)
      at com.clarkware.junitperf.ThreadedTest$TestRunner.run(Unknown Source)
      at java.lang.Thread.run(Thread.java:534)
      Connection refused: connect

      java.net.ConnectException: Connection refused: connect
      at java.net.PlainSocketImpl.socketConnect(Native Method)
      at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
      at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)
      at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158)
      at java.net.Socket.connect(Socket.java:452)
      at java.net.Socket.connect(Socket.java:402)
      at java.net.Socket.(Socket.java:309)
      at java.net.Socket.(Socket.java:124)
      at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:286)
      at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:318)
      at org.apache.cactus.client.HttpClientConnectionHelper.dispatch24_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):164)
      at org.apache.cactus.client.HttpClientConnectionHelper.around24_connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236)
      at org.apache.cactus.client.HttpClientConnectionHelper.connect(HttpClientConnectionHelper.java;org/apache/cactus/util/log/LogAspect.aj(1k):106)
      at org.apache.cactus.client.AbstractHttpClient.callRunTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):186)
      at org.apache.cactus.client.AbstractHttpClient.dispatch2_doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):109)
      at org.apache.cactus.client.AbstractHttpClient.around2_doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):1236)
      at org.apache.cactus.client.AbstractHttpClient.doTest(AbstractHttpClient.java;org/apache/cactus/util/log/LogAspect.aj(1k):104)
      at org.apache.cactus.AbstractWebTestCase.runGenericTest(AbstractWebTestCase.java:260)
      at org.apache.cactus.ServletTestCase.runTest(ServletTestCase.java:133)
      at org.apache.cactus.AbstractTestCase.runBare(AbstractTestCase.java:195)
      at com.clarkware.junitperf.ThreadedTest$TestRunner.run(Unknown Source)
      at java.lang.Thread.run(Thread.java:534)
      Connection refused: connect

      Any ideas? I have tried fiddling the threading settings in jboss-service.xml in the jetty.sar directory?

      Please help as I have spent about 2 weeks now reading the docs and searching the forums!

        • 1. Re: Cannot connect more than 20 connections on WinXP JBoss 3

          Which version of WindowsXP do you have.
          There are some limits depending upon your license.

          Windows has known problems with its buggy socket
          implementation not allowing lots of
          simultaneous connections
          to happen at once. We have some jboss client
          code that actually retries in a loop because
          of this windows problem.

          Try the same thing on linux, I bet it disappears.

          Regards,
          Adrian

          • 2. Re: Cannot connect more than 20 connections on WinXP JBoss 3
            yatesco

            Hi Adrian,

            I am using WinXP Professional, with all the updates from MSoft.

            I will try it on Linux and see if that helps. The production environment is Linux (Debian) so it would make sense ;)

            Cheers

            • 3. Re: Cannot connect more than 20 connections on WinXP JBoss 3
              vanitas

              Hi,

              I had the same problem, and the solution is to set BackLog attribute for the Naming service in your jboss-service.xml file.

              I have it set to the following:
              ---

              <!-- The listening port for the bootstrap JNP service. Set this to -1
              to run the NamingService without the JNP invoker listening port.
              -->
              100
              1099


              ---

              and now it works fine :)

              best regards,
              greg

              • 4. Re: Cannot connect more than 20 connections on WinXP JBoss 3
                rcostanzo

                Out of the box Jetty comes with a maximum thread count of 20 for the AJP13Listener. Unlike Tomcat, Jetty does not offer any queue so a request which comes in when all 20 threads are in use is rejected.

                To up this number and the amount of concurrent requests which your system will process, change it in $JBOSS_HOME/server/[server_name]/deploy/jboss-web-jetty.sar/META-INF/jboss-service.xml.

                You will see a "MaxThreads" setting for both the HTTP listener and the AJP13 listener (which is used when connecting from a web server with the jk mod).