I've modified the client code further (see attached) and run more tests on
Win2k.  I find that for any backlog >= 200, the tests run with no errors for
up to 200 client threads.  For >= 300 client threads, I generally get some
errors, regardless of the backlog setting (e.g. 500, 5000).  Contributing to
this may be internal limitations of the TCP/IP stack (perhaps it only truly
supports a backlog of 200), pooling limitations of Tomcat 3.2.1 (which has
some arrays hard-coded to be 100 elements) and numerous other things that
don't come to mind immediately.

If you want to maximize the throughput you can achieve while using open
source code, you could (1) use Apache as the Web server, with Tomcat
handling only servlet requests (2) move up to Tomcat 4, which has numerous
features to improve throughput (3) move up to Axis, which like Tomcat 4
improves on the throughput of its predecessor and/or (4) try other servlet
containers and/or Web servers.  If you are looking for zero-cost software,
but not necessarily open source, then as suggested elsewhere you might try
alternatives like GLUE (www.themindelectric.com).

In evaluating your platform options, however, I encourage you to build a
more representative test scenario.  On my machine, the server method in your
test consumes over one half second of CPU.  If your actual service would do
this, and you expect hundreds of requests per second (as your test
generates), you should be anticipating the use of a cluster of server
machines with load balancing.  You should consider building a test client
that will spread out the load over more time (such as 10 requests per second
for a minute rather than a single shot of 500 requests) and a server that
does some I/O (assuming your real service will need to access local files or
network resources).

Scott


----- Original Message -----
From: "siddharth aggarwal" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Sunday, September 23, 2001 11:57 PM
Subject: Re: Re: Re: performance of apache SOAP


But just out of curiosity I'd like to know what would happen if I set the
backlog to a much larger value .. say 5000.







Client.java

Reply via email to