Tomcat6.0.26でいくつかのアプリケーションを実行しています。 mod_jkを介してWebサーバーと通信しているApacheがあります。アプリケーションブラウザにアクセスしようとすると、数時間ごとに回転するだけで、コンテンツは取得されません。
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
私のワーカーは次のように構成されています。
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は、コネクタ構成で同じポート番号を持っています。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="*********" />
私が欠けているアイデアを持っている人はいますか?何がそのような問題を引き起こす可能性がありますか?
乾杯コンラッド
たくさんのご支援ありがとうございました!
実際には、一部の人が示唆したように、アプリケーションの問題でした。これは、MySQL接続プールの設定が正しくないことが原因でした(タイムアウトのタイプミス-したがって、値は1から0まででした)。そのため、DBへの接続がタイムアウトすることはなかったため、アプリケーションの接続が不足していました。
プーリング構成(私の場合はc3p0)を修正すると、問題が解決しました!
もう一度ありがとう!
コンラッド
タイムアウト期間の前にTomcatに応答が送信されていないようです。これはアプリケーションの問題である可能性があります。この状況で私が行うことは、次のような頻繁な間隔で確認するために、ある種の監視を設定することです(Nagios、またははるかに単純なもの)。
これらのテストの履歴をグラフ化すると、アプリケーションやアプリケーションサーバーが定期的に停止する問題が発生する可能性があり、最終的には根本的な原因になります。幸運を祈ります...断続的な問題は最悪です。
これは忙しいサイトですか?たぶんあなたはちょうどmaxThreadsに到達しています。
worker.admanagonode.Host=*****.com
マシンはNAT上にあり、そのホスト名は外部IPに解決されますか?通常、同じネットワークで実行されているオフマシンのTomcatに特にバックエンドする場合を除いて、これは「localhost」(デフォルト)のままにします(したがって、/ etc/hostsがあります)。
Server.xmlからのコネクタアドレスについても同じことが言えます= 127.0.0.1以外に設定されていますか?なぜ?
簡単なテストを試して、すべてのタイムアウト、再試行、およびその他のオプションのものにコメントします。
worker.admanagonode.port=8009
worker.admanagonode.Host=*****.com
worker.admanagonode.type=ajp13
そして、この構成をテストします。このタイムアウトオプションの1つが問題の原因であると思います。