Hi,
We are using mod_jk version 1.2.28, Apache 2.2.15 on Red Hat 4.1.2-46. The Apache server is 4-core CPU. The AJP is load balancing 2 Windows JBoss_4_2_2_GA / Tomcat-5.5 servers with 4-core CPU and 8GB RAM each. We are having couple problems with the AJP connector. Before I explain the problem, I want to say that I have been measuring it by the number of http connections (ps -ef|grep http|wc -l). I am able to correlate the increase in errors and eventually the refusal of connections to the number of http connections. 1. When there are > 30 http connections, I see the error below almost every 1 minute. As the traffic and the number of connections increase, the frequency of error increases and the performance of the web application that is being hosted on the system decreases. [Mon Oct 25 20:59:42 2010][11224:3086337808] [info] ajp_process_callback::jk_ajp_common.c (1882): Writing to client aborted or client network problems [Mon Oct 25 20:59:42 2010][11224:3086337808] [info] ajp_service::jk_ajp_common.c (2540): (worker2) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Mon Oct 25 20:59:42 2010][11224:3086337808] [info] service::jk_lb_worker.c (1388): service failed, worker worker2 is in local error state [Mon Oct 25 20:59:42 2010][11224:3086337808] [info] service::jk_lb_worker.c (1407): unrecoverable error 200, request failed. Client failed in the middle of request, we can't recover to another instance. [Mon Oct 25 22:13:26 2010][27236:3086337808] [info] ajp_process_callback::jk_ajp_common.c (1882): Writing to client aborted or client network problems [Mon Oct 25 22:13:26 2010][27236:3086337808] [info] ajp_service::jk_ajp_common.c (2540): (worker1) sending request to tomcat failed (unrecoverable), because of client write error (attempt=1) [Mon Oct 25 22:13:26 2010][27236:3086337808] [info] service::jk_lb_worker.c (1388): service failed, worker worker1 is in local error state [Mon Oct 25 22:13:26 2010][27236:3086337808] [info] service::jk_lb_worker.c (1407): unrecoverable error 200, request failed. Client failed in the middle of request, we can't recover to another instance. [Mon Oct 25 22:13:26 2010][27236:3086337808] [info] jk_handler::mod_jk.c (2611): Aborting connection for worker=loadbl 2. The number of connections will suddenly surge from say 40 to 90 to ~200 in no time, at which point all I see in mod_jk.log is error messages and the application either stops responding with the connection refused or bad gateway error. To fix the problem the Jboss service usually needs to be restated. This surge is unpredictable and may happen between 1 and 5 times in 24 hours. I have read many posts and documents (including http://kbase.redhat.com/faq/docs/DOC-15866 and used http://lbconfig.appspot.com/ for base configurations) and changed the configurations many times, but the problem continues to exist. I think my current configuration is the worst version so far. It works well only with low traffic. Here's the current configuration: --- workers.properties ---- worker.list=loadbl,status worker.template.port=8009 worker.template.type=ajp13 worker.template.lbfactor=1 worker.template.ping_mode=A worker.template.reply_timeout=30000 worker.template.socket_connect_timeout=10000 worker.template.socket_timeout=10 worker.template.connection_pool_timeout=600 worker.worker1.reference=worker.template worker.worker1.host=jboss_server1 worker.worker2.reference=worker.template worker.worker2.host=jboss_server2 worker.loadbl.type=lb worker.loadbl.balance_workers=worker1,worker2 worker.loadbl.sticky_session=True worker.status.type=status ----------------------------------- ---- http.conf ---- <IfModule mpm_prefork_module> StartServers 8 MinSpareServers 5 MaxSpareServers 20 MaxClients 250 MaxRequestsPerChild 0 </IfModule> ---------------------- ----- server.xml ---- <Engine name="jboss.web" defaultHost="localhost" jvmRoute="worker1"> .... .... <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3" emptySessionPath="true" enableLookups="false" redirectPort="8443" maxThreads="800" connectionTimeout="600000"/> ---------------------- Any help in figuring this out is very much appreciated. Thanks, -mo