mod_jk problem: Tomcat provavelmente não foi iniciado ou está escutando na porta errada

2

Estou executando algum aplicativo no Tomcat 6.0.26. Existe o Apache na frente do servidor web conversando com ele sobre mod_jk. A cada poucas horas, quando tento acessar o navegador de aplicativos, simplesmente gira e nenhum conteúdo é recuperado.

Nenhum erro é relatado nos logs do Tomcat, mas eu gosto de tais erros no log do mod_jk:

[Sun Jul 04 21:19:13 2010][error] ajp_service::jk_ajp_common.c (1758): Error connecting to tomcat. Tomcat is probably not started or is listening on the wrong port. worker=***** failed
[Sun Jul 04 21:19:13 2010][info]  jk_handler::mod_jk.c (1985): Service error=0 for worker==*****
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 46
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet)
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet)
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 46
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503): Tomcat is down or refused connection. No response has been sent to the client (yet)
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 45
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955): Tomcat has forced a connection close for socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_service::jk_ajp_common.c (1721): Receiving from tomcat failed, recoverable operation attempt=0

meu trabalhador é configurado da seguinte maneira:

worker.admanagonode.port=8009
worker.admanagonode.host=*****.com
worker.admanagonode.type=ajp13
worker.admanagonode.ping_mode=A
worker.admanagonode.socket_timeout=60
worker.admanagonode.prepost_timeout=10000
worker.admanagonode.connect_timeout=10000
worker.admanagonode.connection_pool_size=200
worker.admanagonode.connection_pool_timeout=300
worker.admanagonode.retries=20
worker.admanagonode.socket_keepalive=1
worker.admanagonode.cachesize=10
worker.admanagonode.cache_timeout=600

O Tomcat tem o mesmo número de porta na configuração do Connector:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="*********" />

Algum de vocês tem alguma idéia do que eu estou perdendo? O que pode causar esses problemas?

Felicidades Konrad

    
por Konrad 05.07.2010 / 18:49

5 respostas

1

obrigado por todo seu apoio, eu realmente agradeço!

Foi, na verdade, como alguns de vocês sugeriram - problema de aplicação. Isso foi causado pela configuração incorreta do pool de conexões do MySQL (typo in timeout - então o valor estava tendo um 0 para muito). Então, o aplicativo estava ficando sem o Connections to DB, já que eles nunca atingiram o tempo limite.

Corrigindo a configuração do pool (no meu caso, c3p0) resolveu o problema!

Obrigado mais uma vez!

Konrad

    
por 07.07.2010 / 00:25
1

Parece que nenhuma resposta está sendo enviada ao Tomcat antes do período de tempo limite. Isso pode ser um problema de aplicativo. O que eu faria nessa situação é ter algum tipo de configuração de monitoramento (seja o Nagios, ou algo bem mais simples) para garantir um intervalo freqüente que:

  • A porta 8009 no servidor de aplicativos está aceitando conexões de entrada.
  • A porta 8009 no servidor de aplicativos está aceitando solicitações da AJP / 1.3.

Se você representar graficamente o histórico desses testes, poderá encontrar um problema em seu aplicativo e / ou servidor de aplicativos ter interrupções periódicas, o que, por fim, levará a uma causa raiz. Boa sorte ... problemas intermitentes são os piores.

    
por 05.07.2010 / 21:07
0

Este é um site ocupado? Talvez você esteja apenas alcançando maxThreads.

    
por 05.07.2010 / 22:57
0
worker.admanagonode.host=*****.com

A sua máquina está em um NAT e esse nome de host é resolvido para um IP externo? Normalmente, você deixa isso para 'localhost' (padrão), a menos que você esteja fazendo o backend especificamente para um Tomcat fora da máquina em execução na mesma rede (portanto, há um / etc / hosts para ele) e assim por diante.

O mesmo vale para o seu endereço do Conector de server.xml = você tem esse configurado para algo diferente de 127.0.0.1? E por quê?

    
por 06.07.2010 / 06:27
0

Tente um teste simples, comente todos os tempos limite, novas tentativas e outras coisas:

worker.admanagonode.port=8009
worker.admanagonode.host=*****.com
worker.admanagonode.type=ajp13

E teste esta configuração. Acho que uma dessas opções de tempo limite deve ser responsável pelo problema.

    
por 06.07.2010 / 12:00