2 votes

Problème mod_jk : Tomcat n'est probablement pas démarré ou écoute sur le mauvais port

Je lance une application sur Tomcat 6.0.26. Il y a Apache en face du serveur web qui communique avec lui via mod_jk. Toutes les quelques heures lorsque j'essaie d'accéder à l'application, le navigateur tourne simplement en rond et aucun contenu n'est récupéré.

Aucune erreur n'est signalée dans les journaux de Tomcat, mais j'ai trouvé de telles erreurs dans le journal de mod_jk :

[Sun Jul 04 21:19:13 2010][error] ajp_service::jk_ajp_common.c (1758) : Erreur de connexion à Tomcat. Tomcat n'est probablement pas démarré ou écoute sur le mauvais port. worker=***** a échoué
[Sun Jul 04 21:19:13 2010][info]  jk_handler::mod_jk.c (1985) : Service error=0 pour worker==*****
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 46
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503) : Tomcat est arrêté ou a refusé la connexion. Aucune réponse n'a été envoyée au client pour le moment
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503) : Tomcat est arrêté ou a refusé la connexion. Aucune réponse n'a été envoyée au client pour le moment
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 46
[Sun Jul 04 21:19:13 2010][error] ajp_get_reply::jk_ajp_common.c (1503) : Tomcat est arrêté ou a refusé la connexion. Aucune réponse n'a été envoyée au client pour le moment
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 45
[Sun Jul 04 21:19:13 2010][info]  ajp_connection_tcp_get_message::jk_ajp_common.c (955) : Tomcat a forcé une fermeture de connexion pour socket 46
[Sun Jul 04 21:19:13 2010][info]  ajp_service::jk_ajp_common.c (1721) : La réception depuis Tomcat a échoué, tentative d'opération récupérable=0

Mon worker est configuré de la manière suivante :

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

Tomcat a le même numéro de port dans la configuration du Connector :

Est-ce que l'un de vous a des idées sur ce que je rate ? Qu'est-ce qui pourrait causer de tels problèmes ?

À votre santé Konrad

1voto

Kyle Smith Points 9443

Il semble qu'aucune réponse ne soit envoyée par Tomcat avant la période de temps d'attente. Cela pourrait être un problème d'application. Ce que je ferais dans cette situation, c'est avoir une sorte de surveillance en place (que ce soit Nagios, ou quelque chose de beaucoup plus simple) pour m'assurer à intervalles fréquents que :

  • Le port 8009 du serveur d'application accepte les connexions entrantes.
  • Le port 8009 du serveur d'application accepte les demandes AJP/1.3.

Si vous faites un graphique de l'historique de ces tests, vous pourriez trouver un problème avec votre application et/ou votre serveur d'application ayant des interruptions périodiques, ce qui vous mènera finalement à trouver une cause principale. Bonne chance... les problèmes intermittents sont les pires.

1voto

Est-ce un site occupé? Peut-être que vous atteignez simplement maxThreads.

1voto

SpartanJanitor Points 71

Merci pour tout votre soutien, je l'apprécie vraiment!

En réalité, comme certains d'entre vous l'ont suggéré - il s'agissait d'un problème d'application. Cela était dû à une configuration incorrecte du groupement de connexions MySQL (une faute de frappe dans le délai - donc la valeur avait un zéro en trop). Donc, l'application ne parvenait pas à établir de connexion à la base de données, car celles-ci ne se terminaient jamais.

La correction de la configuration du groupement (dans mon cas c3p0) a résolu le problème!

Merci encore une fois!

Konrad

0voto

worker.admanagonode.host=*****.com

Votre machine est-elle sur un NAT, et ce nom d'hôte se résout-il en une adresse IP externe ? En général, vous le laissez à 'localhost' (par défaut) à moins que vous ne fassiez spécifiquement du backending vers un Tomcat situé sur une autre machine dans le même réseau (donc il y a un /etc/hosts pour cela) et ainsi de suite.

Il en va de même pour l'adresse de votre connecteur à partir de server.xml = l'avez-vous définie sur quelque chose d'autre que 127.0.0.1 ? Et pourquoi ?

0voto

Unkcp Points 41

Essayez un test simple, commentez tous les délais d'attente, les réessais et autres éléments facultatifs :

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

Et testez cette configuration. Je pense qu'une de ces options de délai d'attente pourrait être responsable du problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X