Cara, eu tive esse problema por muitos anos, usei todas as versões do mod_jk, todos são uma merda. Trava pra carai…
Fiz turning no JDK, reconfigurei o tomcat de tudo que foi maneira e nada.
Pensei que fosse memory leak nas aplicações, até que tem um pouco, mas não justificaria a travada do tomcat 4,5,6 vezes por dia.
OBS: O acesso aos servidores é grande, usuários na intranet e Internet… sendo que os usuários em geral, logam-se no sistema e ficam horas conectados trabalhando.
Solução do Problema:
Vou tentar explicar o que fiz:
Software Instalados:
- Fedora 9 (tambem fiz no F2,F4,F7,F8 e funcionou normal)
- jdk1.6.0_01
- apache-2.2.9 (USANDO MOD_PROXY)
- apache-tomcat-6.0.14
A compilação do apache-2.2.9
#./configure --prefix=/www/apache-2.2.9 --enable-so --enable-ssl --with-mpm=worker --enable-rewrite --enable-proxy --enable-proxy-ajp --enable-proxy-balancer --enable-cache --enable-disk-cache --enable-deflate --enable-headers
#make
#make install
Obs: Não esqueça de habilitar o httpd-vhosts no httpd.conf, é só descomentar uma linha
Configuração do Apache
#vi /www/apache-2.2.9/conf/extra/httpd-vhosts.conf
ExtendedStatus On
<VirtualHost *:80>
ProxyStatus On
ServerName www.seudominio.com.br
ServerAdmin suporte@seudominio.com.br
DocumentRoot /www/sistemas # Caminho dos seu sistemas(contextos)
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/exemplo.error_log
TransferLog logs/exemplo.access_log
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from all
AuthType basic
AuthName “TESTE”
AuthUserFile conf/htpasswd.status
Require valid-user
<Location /balancer-manager>
SetHandler balancer-manager
Order Deny,Allow
Deny from all
Allow from all
AuthType basic
AuthName “TESTE”
AuthUserFile conf/htpasswd.status
Require valid-user
<Location “/”>
Allow from all
ProxyPassMatch ^(/..jsp|/..do)$ balancer://cluster #Obs: aqui voce pode mapear seus servlets e extensões para o tomcat gerenciar… Fora essa lista,
#quem vai receber as requisições é o apache
Membros do Cluster
<Proxy balancer://cluster stickysession=JSESSIONID> # Para mater o usuário no servidor que ele se logou
BalancerMember ajp://tomcat1.seudominio.com.br:6651 route=tomcat1 smax=5 max=20 ttl=120 retry=300 loadfactor=2 # Obs: No meu caso, essa Máq. é melhor
BalancerMember ajp://tomcat2.seudominio.com.br:6651 route=tomcat2 smax=5 max=20 ttl=120 retry=300 loadfactor=1
=========================== Configuração do server.xml no TOMCAT1 =====================
OBS: Mudei as portas do tomcat por motivos proprios, voce pode deixar a porta padrão
OBS2: Não esqueça de trocar nome dos jvmRoute nos dois tomcat conforme abaixo
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="6651" protocol="AJP/1.3" maxThreads="150" minSpareThreads="10" maxSpareThreads="150" connectionTimeout="80000" />
<Engine name="catalina" defaultHost="www.seudominio.com.br" jvmRoute="tomcat1">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="www.seudominio.com.br" appBase="/www/sistemas"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
=========================== Configuração do server.xml no TOMCAT2 =====================
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="6651" protocol="AJP/1.3" maxThreads="150" minSpareThreads="10" maxSpareThreads="150" connectionTimeout="80000" />
<Engine name="catalina" defaultHost="www.seudominio.com.br" jvmRoute="tomcat2">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="www.seudominio.com.br" appBase="/www/sistemas"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
Pronto, com isso o seu tomcat vai parar de travar… e voce opde ficar tranquilo, só toma cuidado com o seu chefe, pois não vai ter mais reclamação dos servidores. Dai ele pode achar que voce não tem mais serventia… 
Espero ter ajudado,
qualquer dúvida, mande um email para sandovalcp@gmail.com