Thanks Rainer,

I updated the workers.properties with your suggestions, and verified
that there is only one timeout directive in httpd.conf.  Afterwards, I
found some interesting things poking through the logs.

mod_jk.log
<snip>
[Tue May 29 17:44:55 2007] [1060:1860] [debug] mod_jk.c (452): written
8184 out of 8184
[Tue May 29 17:44:55 2007] [1060:1860] [info]  jk_ajp_common.c (945):
(worker2) Tomcat has forced a connection close for socket 2432
[Tue May 29 17:44:55 2007] [1060:1860] [error] jk_ajp_common.c (1618):
(worker2) Tomcat is down or network problems. Part of the response has
already been sent to the client
[Tue May 29 17:44:55 2007] [1060:1860] [info]  jk_ajp_common.c (1902):
(worker2) receiving from tomcat failed, recoverable operation
attempt=1
[Tue May 29 17:44:55 2007] [1060:1860] [info]  jk_ajp_common.c (1941):
(worker2) sending request to tomcat failed,  recoverable operation
attempt=2
[Tue May 29 17:44:55 2007] [1060:1860] [error] jk_ajp_common.c (1953):
(worker2) Connecting to tomcat failed. Tomcat is probably not started
or is listening on the wrong port
[Tue May 29 17:44:55 2007] [1060:1860] [debug] jk_ajp_common.c (2286):
recycling connection pool slot=0 for worker worker2
[Tue May 29 17:44:55 2007] [1060:1860] [info]  mod_jk.c (2254):
Service error=0 for worker=worker2
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_uri_worker_map.c
(589): Attempting to map URI '/reporting/data_reports.jsf' from 4 maps
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_uri_worker_map.c
(601): Attempting to map context URI '/*/servlet/=worker2' source
'JkMount'
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_uri_worker_map.c
(601): Attempting to map context URI '/jsp-examples/*=worker2' source
'JkMount'
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_uri_worker_map.c
(601): Attempting to map context URI '/reporting/*=worker2' source
'JkMount'
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_uri_worker_map.c
(616): Found a wildchar match '/reporting/*=worker2'
[Tue May 29 17:45:36 2007] [1060:1860] [debug] mod_jk.c (2111): Into
handler jakarta-servlet worker=worker2 r->proxyreq=0
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_worker.c (114):
found a worker worker2
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_worker.c (321):
Maintaining worker worker2
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (2416):
reached pool min size 125 from 250 cache slots
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (2424):
recycled 0 sockets in 0 seconds from 250 pool slots
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_worker.c (321):
Maintaining worker worker4
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (2416):
reached pool min size 125 from 250 cache slots
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (2424):
recycled 0 sockets in 0 seconds from 250 pool slots
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_lb_worker.c (543):
decay with 2^1
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_worker.c (290):
Found worker type 'ajp13'
[Tue May 29 17:45:36 2007] [1060:1860] [debug] mod_jk.c (607): Service
protocol=HTTP/1.1 method=GET host=(null) addr=196.40.33.120
name=semoptimizer.com port=80 auth=(null) user=(null)
laddr=72.3.224.97 raddr=196.40.33.120
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (2343):
acquired connection pool slot=0
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (548):
ajp marshaling done
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (1796):
processing worker2 with 2 retries
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_connect.c (335):
socket TCP_NODELAY set to On
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_connect.c (348):
socket SO_KEEPALIVE set to On
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_connect.c (433):
trying to connect socket 2432 to 127.0.0.1:8009
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_connect.c (459):
socket 2432 connected to 127.0.0.1:8009
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (850):
Connected socket 2432 to (127.0.0.1:8009)
[Tue May 29 17:45:36 2007] [1060:1860] [debug] jk_ajp_common.c (896):
sending to ajp13 pos=4 len=536 max=8192
</snip>

So maybe Tomcat is down...but why is it going down? I didn't see
anything in the Tomcat logs to indicate that it was going down.

And why "reached pool min size 125 from 250 cache slots?" I'm the only
one going to the pages.  I would think it would take more than just
one browser to use up 125 cache slots.

I have so far only been able to reproduce this problem on my
workstation, which has an internet connection from the stone age
(128Kb).  A friend was able to see the pages fine, and remoting in to
the server and accessing the pages from there works (using both the
domain name and localhost.)

Here's my new 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=600
worker.worker2.socket_keepalive=1
#worker.worker2.socket_timeout=60

# Set properties for worker4 (lb) which use worker2
worker.worker4.type=lb
worker.worker4.balance_workers=worker2


On 5/29/07, Rainer Jung <[EMAIL PROTECTED]> wrote:
Jessica Johnson wrote:
> On 5/29/07, Rainer Jung <[EMAIL PROTECTED]> wrote:
>>
>> Hi Jessica,
>>
>> your information looks strange. You are talking about mod_jk 1.2.22, but
>> you present a configuration for mod_jk2, which is deprecated. mod_jk
>> will not work with this configuration, because mod_jk uses a very
>> different config syntax.
>
>
> Strangely enough it did work - I don't know how.  But I changed configs to
> the below in case that was part of the problem.  Everything is still
> working
> the same as far as I can tell.
>
> I don't know if I need the load balancer since I only have one other
> worker.  Will the load balancer affect performance?
>
> workers.properties
> # Define some properties
> workers.apache_log="C:\Program Files\Apache Software
> Foundation\Apache2.2\logs"

That doesn't exist and will be ignored.

> 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=\

Those three are generally not needed and will be ignored

> # 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=600
> worker.worker2.socket_keepalive=1
> worker.worker2.socket_timeout=60

Don't use a socket_timeout if you expect long waiting intervals, at
least not on your first try.

> # Set properties for worker4 (lb) which use worker2
> worker.worker4.balance_workers=worker2
>

This will be ignored unless you add worker.worker4.type=lb

> httpd.conf exerpt:
>
> # 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

You can try JkLogLevel debug or even trace, once you can reproduce your
problem with low load.

> JkMount /*.jsp worker2
> JkMount /*/servlet/ worker2
> JkMount /jsp-examples/* worker2
> JkMount /reporting/* worker2
>
> Although I don't know your actual configs, I assume your problem happens
>> when requests take longer than 300 seconds, which is the default request
>> timeout with Apache. You can increase this with Apache Timeout
>> directive. You can measure response times by adding "%D" to your
>> LogFormat (microseconds response time).
>
>
> I added
> TimeOut 1200
> KeepAliveTimeout 30
>
> To the end of httpd.conf which didn't fix the original 503 problem.  I also
> noticed that sometimes I don't get the error at all, but the html response
> is incomplete.  I will experiment some with %D and see if I can learn more
> about the problem.  In the meantime, I would appreciate any ideas you all
> might have.

Good luck. BTW: usually there already is a Timeout directive in
httpd.conf, so you might have now two ones with inconsistent values ...


---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to