I have locally modified the head revision of the jk2 project and would like
some feedback before submitting the enhancements for review.

The change in behavior that we desired was that rather than returning an
error when the max_connections for the endpoint cache were reached, the
worker would wait for an endpoint to be returned to the cache.  

Consider the scenario where apache is configured to have lots ( lets say 900
) of worker threads, but we want to limit the connections to tomcat to just
a few ( lets say 15 ). Without the enhancement I am proposing, we had to
configure the AJP connector in tomcat as follows. 
connection timeout = 1 ( problematic as testing using a slow connection
would drop connections ), 
accept count 1000 ( needed so that we could queue up requests from apache )
max threads = 30 ( We determined that jdk/tomcat we spend more time waiting
than working with more threads than this )
And configure jk2 not to limit the connections to tomcat.

This configuration allowed us to handle the desired load. We test with 1000
virtual users, which maps to about 2000 real users for our tests. We could
handle the load but the log files filled with error messages, apparently to
JK2 its an error when tomcat closes the connection on its end. The test also
had a couple hundred errors after about 10000 page views.

To implement this functionality I modified the jk_mutex_thread.c module to
include a wait and a notify method (using the apr_thread_cond routines).  I
then modified the ajp13 worker to wait (forever) when the max_endpoints are
reached. I also modified the "jk2_worker_ajp13_done" method to "notify" when
an endpoint was returned to the cache.

After load testing the resulting code, after close to 11000 page views we
had 0 errors and response times remained at about .2 seconds (no slower than
jk2 without my mods).

I didnt add a wait timeout because I didnt feel in our case that an error
should be returned to the client. But perhaps the option to specify a
timeout could be useful to someone else.

Comments?

-sean


CONFIDENTIALITY NOTICE - This e-mail transmission, and any documents, files or 
previous e-mail messages attached to it may contain information that is confidential 
or legally privileged. If you are not the intended recipient, or a person responsible 
for delivering it to the intended recipient, you are hereby notified that you must not 
read this transmission and that any disclosure, copying, printing, distribution or use 
of any of the information contained in or attached to this transmission is STRICTLY 
PROHIBITED. If you have received this transmission in error, please immediately notify 
the sender by telephone or return e-mail and delete the original transmission and its 
attachments without reading or saving in any manner. Thank you

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

Reply via email to