mod_jk问题:Tomcat可能没有启动或正在监听错误的端口

我在Tomcat 6.0.26上运行一些应用程序。 在web服务器前面有一个Apache,通过mod_jk与它通话。 每隔几个小时,当我尝试访问应用程序浏览器时,都会简单地旋转,并且没有检索到内容。

在Tomcat日志中没有报告错误,但我喜欢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 

我的工作人员configuration如下:

 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在连接器configuration中具有相同的端口号:

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

你有没有什么想法我失踪? 什么会导致这样的问题?

干杯康拉德

在超时期限之前,似乎没有响应正在发送Tomcat。 这可能是一个应用程序问题。 在这种情况下,我要做的就是设置一些监控(Nagios,或者简单一些),以确保在频繁的时间间隔内:

  • 应用程序服务器上的端口8009正在接受传入连接。
  • 应用程序服务器上的端口8009完全接受AJP / 1.3请求。

如果您绘制这些testing的历史logging,则可能会发现您的应用程序和/或应用程序服务器有定期中断的问题,最终会导致您find根本原因。 最好的运气……间歇性的问题是最糟糕的。

感谢所有的支持,我真的很感激!

实际上,正如你们中的一些人所build议的 – 应用程序问题。 这是由于MySQL连接池configuration错误(超时错字 – 所以值有一个0到多)。 所以应用程序连接到数据库的时间已经不多了,因为这些数据从不会超时。

修复poolingconfiguration(在我的情况下c3p0)解决的问题!

再次感谢!

康拉德

这是一个繁忙的网站? 也许你只是到达maxThreads。

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

您的机器是否在NAT上,并且该主机名parsing为外部IP? 通常情况下,您将其保留为“本地主机”(默认),除非您特别退回到在同一networking中运行的非机器Tomcat(所以有一个/ etc / hosts)等等。

server.xml中的连接器地址也一样=你有没有设置为127.0.0.1以外的东西? 为什么?

尝试一个简单的testing,评论所有的超时,重试和其他可选的东西:

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

并testing这个configuration。 我认为这个超时选项之一应该是对这个问题负责。