Thanks, -shawn
Randall Svancara wrote:
Well, that depends on what platform and how apache was compiled. As I
understand on windows, apache uses the mpm modules and unix it uses
forking or it can use mpm. You need to find the section for you
platform and make the ajustments as neccessary. Below is the section
where you need to look in your apache configuration file, usually called
httpd.conf, but i have seen them named apache.conf (gentoo anyone). But
you can see the min and max spare servers/threads listed in each
section. Just adjust accordingly.
I hope this helps.
<IfModule prefork.c> StartServers 75 MinSpareServers 75 MaxSpareServers 300 MaxClients 300 MaxRequestsPerChild 0 </IfModule>
# worker MPM # StartServers: initial number of server processes to start # MaxClients: maximum number of simultaneous client connections # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # ThreadsPerChild: constant number of worker threads in each server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule worker.c> StartServers 75 MaxClients 300 MinSpareThreads 75 MaxSpareThreads 300 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
# perchild MPM # NumServers: constant number of server processes # StartThreads: initial number of worker threads in each server process # MinSpareThreads: minimum number of worker threads which are kept spare # MaxSpareThreads: maximum number of worker threads which are kept spare # MaxThreadsPerChild: maximum number of worker threads in each server process # MaxRequestsPerChild: maximum number of connections per server process <IfModule perchild.c> NumServers 75 StartThreads 75 MinSpareThreads 75 MaxSpareThreads 300 MaxThreadsPerChild 20 MaxRequestsPerChild 0 </IfModule>
# WinNT MPM # ThreadsPerChild: constant number of worker threads in the server process # MaxRequestsPerChild: maximum number of requests a server process serves <IfModule mpm_winnt.c> ThreadsPerChild 250 MaxRequestsPerChild 0 </IfModule>
-----Original Message----- From: Shawn Wilson [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 10:21 AM To: Tomcat Users List Subject: Re: mod_jk hangs
Okay, here is the section from our server.xml in production:
<Service name="Catalina"> <Connector port="8080" />
<!-- This is here for compatibility only, not required --> <Connector port="8090" protocol="AJP/1.3" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="ajp13_0"> <Logger className="org.apache.catalina.logger.FileLogger" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" />
<Host name="localhost" appBase="webapps" /> </Engine> </Service>
I thought it interesting the comment that "this is here for compatibility only, not required." It sounds to me that connector is required if I want AJP/1.3 isn't it? I can't remember if that comment was there or if I (mistakingly) added it. Anyways, I see that I could probably do well to add the minSpareThreads and maxSpareThreads parameters. Any idea where I should look in my httpd.conf file to see what values to set these to?
Thanks, -shawn
Randall Svancara wrote:
You might want to check to make sure you have enough tomcat threads
for
each apache thread.
I usually give tomcat a few more threads than apache just to make sure
I
do not run out.
-------snip----------------
<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009" enableLookups="false" redirectPort="8443" debug="0"
minSpareThreads="100" maxSpareThreads="300"
protocol="AJP/1.3" />
-------snip----------------
So you might want to increase min and max spare threads to accomodate
more requestes from apache to tomcat via mod_jk.
Randall
-----Original Message----- From: Shawn Wilson [mailto:[EMAIL PROTECTED] Sent: Wednesday, May 05, 2004 9:50 AM To: [EMAIL PROTECTED] Subject: mod_jk hangs
Just yesterday we started running into problems requesting pages on
our
production website through mod_jk. Previously everything had been working fine for months. Essentially what happens is when you request the page for the first time (doesn't seem to matter what browser
you're
using) the browser just sits and spins. Then after hitting refresh (Ctrl+R) a couple times it finally comes up. Subsequent visits to the same page continue to work for me in Mozilla but after closing IE and reopening it after a couple more requests it hangs again. In case it helps, the site in question is http://www.atmreports.com.
I simply cannot figure out what is going on. I do see many errors in
the
mod_jk.log, but these had been there before when everything worked
fine
too:
[Wed May 05 09:27:46 2004] [jk_ajp_common.c (1137)]: Error reading reply from tomcat. Tomcat is down or network problems.
[Wed May 05 09:27:46 2004] [jk_ajp_common.c (1290)]: ERROR: Receiving
from tomcat failed, recoverable operation. err=0 [Wed May 05 09:27:46 2004] [jk_ajp_common.c (1309)]: sending request
to
tomcat failed in send loop. err=0
[Wed May 05 09:27:46 2004] [jk_ajp_common.c (738)]: ERROR: can't receive the response message from tomcat, network problems or tomcat
is
down. err=-1
A few things to note, any of which may contribute to the problem but
for
the life of me I can't figure out how:
1. On Friday we just moved out datacenter to a new location. However
we
see this problem even internally at the location so I don't believe it
is any sort of routing issue (and the problem didn't start until Tuesday).
2. The clock on this webserver was many hours off. On Tuesday (yes,
the
day the problems started) the clock was synchronized and the timezone correctly set so the machine now has correct time. This seems to be
the
most probable cause simply because it happened around the same time,
but
I just can't understand why or how.
3. Yesterday we rebooted the box to see if that would help. It did. We
didn't have any more problems at all that day until this morning we
see
the problems again. Today we recycled just tomcat and that seems to
have
fixed it as well, though I expect that by tomorrow I will see the problem again.
4. I wouldn't think this could have anything to do with that new
Sasser
worm, but listing that just in case.
The machine is running Linux kernel 2.4.20-8 with httpd-2.0.40-21 and jakarta-tomcat-5.0.18. We are running 4 instances of tomcat on the
box,
each started with the following JVM options:
-Xmn128M -Xmx1024M -Djava.awt.headless=true
Nothing having to do with configuration has changed at all in a long time. Here is the relevant configuration sections:
# Mod_jk (Tomcat connector) LoadModule jk_module modules/mod_jk.so
<IfModule mod_jk.c> JkWorkersFile /etc/httpd/conf/workers.properties JkLogFile /var/log/httpd/mod_jk.log JkLogLevel info JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" </IfModule>
...and later (in a <VirtualHost> section)...
JKMount /myreports balancer JKMount /myreports/* balancer
Here is our workers.properties file (comments removed):
workers.java_home=/usr/java/j2sdk1.4.2_03 ps=/ worker.list=balancer
worker.ajp13_0.port=8090 worker.ajp13_0.host=localhost worker.ajp13_0.type=ajp13 worker.ajp13_0.lbfactor=1
worker.ajp13_1.port=8091 worker.ajp13_1.host=localhost worker.ajp13_1.type=ajp13 worker.ajp13_1.lbfactor=1
worker.ajp13_2.port=8092 worker.ajp13_2.host=localhost worker.ajp13_2.type=ajp13 worker.ajp13_2.lbfactor=1
worker.ajp13_3.port=8093 worker.ajp13_3.host=localhost worker.ajp13_3.type=ajp13 worker.ajp13_3.lbfactor=1
worker.balancer.type=lb worker.balancer.balanced_workers=ajp13_0, ajp13_1, ajp13_2, ajp13_3 worker.balancer.sticky_session=1
Any help would be greatly appreciated!
Thanks, -shawn
-- ==================================== Shawn Wilson [EMAIL PROTECTED] Software Developer, ATMReports.com PH: 877-327-0873, FAX: 406-294-5806 ====================================
smime.p7s
Description: S/MIME Cryptographic Signature