Hi all, I have a web application running on Tomcat 5.5.23 with an Apache 2.2.4 webserver using the jk 1.2.22 connector. I am seeing some strange behavior - I have started to get only the first part of a response when requesting large pages on lower bandwidth (1024 Kbps) connections. Here is an excerpt from the Apache access log:
XXX.XXX.XXX.XXX - - [18/Mar/2008:12:37:23 -0500] "GET /reporting/data_reports.jsf HTTP/1.1" 200 69638 YYY.YYY.YYY.YYY - - [18/Mar/2008:12:36:34 -0500] "GET /reporting/data_reports.jsf HTTP/1.1" 200 210513 IP YYY.YYY.YYY.YYY is being served the full 210,513 bytes, but IP X is only being served the 69,638. Note that the POST parameters were exactly the same for the two requests, so they should be serving the exact same page. But IP X gets only the first part. >From this it looks like the problem is with either Tomcat not creating the entire request, or with the jk connector not passing the request to Apache. I sometimes get this error in the mod_jk log: [Tue Mar 18 12:10:32 2008] [5016:5600] [info] jk_ajp_common.c (1448): Writing to client aborted or client network problems [Tue Mar 18 12:10:32 2008] [5016:5600] [info] jk_ajp_common.c (1857): (worker2) request failed, because of client write error without recovery in send loop attempt=0 [Tue Mar 18 12:10:32 2008] [5016:5600] [info] mod_jk.c (2247): Aborting connection for worker=worker2 but I have far more truncated responses than I do mod_jk errors. I have increased every single timeout related configuration option I can find to what I think are stupidly high levels hoping to stumble across something that will resolve the issue. Does anyone have an idea about this? Here are snippets from my configurations. Please let me know if I should include more detail. ***** httpd.conf ****** # Enable compression of responses AddOutputFilterByType DEFLATE text/html text/plain text/xml # Config for mod_jk <IfModule !mod_jk.c> LoadModule jk_module "C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so" </IfModule> JkWorkersFile "C:/Program Files/Apache Software Foundation/Tomcat 5.5/conf/jk/workers.properties" JkLogFile "C:/Program Files/Apache Software Foundation/Tomcat 5.5/logs/mod_jk.log" JkLogLevel info <VirtualHost ZZZ.ZZZ.ZZZ.ZZZ:80> RewriteEngine on RewriteRule ^/reporting/(.*)$ https://www.example.com/reporting/$1 [R,L] </VirtualHost> <VirtualHost ZZZ.ZZZ.ZZZ.ZZZ:443> ServerName http://www.example.com SSLEngine on SSLCertificateFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/www.example.com.crt" SSLCertificateKeyFile "C:/Program Files/Apache Software Foundation/Apache2.2/conf/www.example.com.2.key" JkMount /reporting/* worker2 </VirtualHost> TimeOut 24000 KeepAliveTimeout 600 **** server.xml **** <!-- Define the Tomcat Stand-Alone Service --> <Service name="Catalina"> <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" connectionTimeout="3600000"/> <!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" connectionTimeout="3600000" protocol="AJP/1.3"/> <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> <Listener className="org.apache.jk.config.ApacheConfig" modJk="C:/Program Files/Apache Software Foundation/Apache2.2/modules/mod_jk.so" /> <Host name="localhost" appBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps" unpackWARs="true" autoDeploy="true" expireSessionsOnShutdown="true" xmlValidation="false" xmlNamespaceAware="false"> </Host> </Engine> </Service> </Server> **** workers.properties ***** # Define some properties workers.apache_log="C:\Program Files\Apache Software Foundation\Apache2.2\logs\error.log" workers.tomcat_home="C:\Program Files\Apache Software Foundation\Tomcat 5.5" workers.java_home="C:\Program Files\Java\jrockit-R27.2.0-jre1.5.0_10" ps=\ # Define 2 workers, 1 real workers using ajp13, the last one being a loadbalancing worker worker.list=worker2,worker4 # Set properties for worker2 (ajp13) worker.worker2.type=ajp13 worker.worker2.host=127.0.0.1 worker.worker2.port=8009 worker.worker2.lbfactor=1 #worker.worker2.connection_pool_timeout=0 worker.worker2.socket_keepalive=true worker.worker2.socket_timeout=0 worker.worker2.connection_pool_minsize=2400 worker.worker2.connection_pool_timeout=3600 worker.worker2.retries=5 worker.worker2.reply_timeout=0 # Set properties for worker4 (lb) which use worker2 worker.worker4.type=lb worker.worker4.balance_workers=worker2 worker.worker4.retries=5 worker.worker4.connection_pool_timeout=3600 worker.worker4.connection_pool_minsize=2400 worker.worker4.reply_timeout=0 --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]