You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Alan <du...@gmail.com> on 2007/05/16 21:01:30 UTC

ajp_get_reply, ajp_connection_tcp_get_message Errors

I have been trouble-shooting a problem that appears constantly in my
mod_jk.log but is
only visible intermittently to users for a few months now.  Searching the
web and this archive
for similar error messages, I have found some solutions that have led me to
better Apache and
Tomcat setups, but have not solved the problem.  The problem is that a
commercial application
we are serving via Apache/Tomcat will periodically display a "Service
Temporarily Unavailable"
message in a random frame within the application, refreshing the browser
usually allows the
users to recover but this becomes painful when users go through the
multi-step process of entering data
or uploading files only to be interrupted by this and have to start over.
Support for the
commercial application has not been particularly helpful so I am hoping to
find suggestions
here to further try to solve this problem.

Our setup is Apache 2.0.59 (Win32) mod_ssl/2.0.59 OpenSSL/0.9.8d
mod_jk/1.2.19 and
Tomcat 5.5.15 running on Windows Server 2003 R2 Service Pack 1.  I will
include httpd.conf,
ssl.conf, workers.properties, and server.xml below.

Regardless of whether or not users see the "Service Temporarily Unavailable"
message in
any of the frames within the application, my mod_jk.log is full of errors
like this:

[Fri Apr 27 09:38:14 2007] [2764:1792] [error]
ajp_get_reply::jk_ajp_common.c (1536): (myworker) Tomcat is down or refused
connection. No response has been sent to the client (yet)
[Fri Apr 27 09:38:22 2007] [2764:3596] [error]
ajp_connection_tcp_get_message::jk_ajp_common.c (947): (myworker) can't
receive the response message from tomcat, network problems or tomcat is down
(127.0.0.1:8009), err=-54
[Fri Apr 27 09:38:22 2007] [2764:3596] [error]
ajp_get_reply::jk_ajp_common.c (1536): (myworker) Tomcat is down or refused
connection. No response has been sent to the client (yet)
[Fri Apr 27 09:38:25 2007] [2764:2148] [error]
ajp_get_reply::jk_ajp_common.c (1536): (myworker) Tomcat is down or refused
connection. No response has been sent to the client (yet)
[Fri Apr 27 09:38:31 2007] [2764:1792] [error]
ajp_connection_tcp_send_message::jk_ajp_common.c (914): sendfull returned
-53 with errno=53
[Fri Apr 27 09:38:31 2007] [2764:1792] [error]
ajp_send_request::jk_ajp_common.c (1350): (myworker) error sending request
body

Setting my log level to debug does not tell me much more:

[Tue May 15 14:21:38 2007] [1804:3328] [debug] ajp_service::jk_ajp_common.c
(1734): processing myworker with 2 retries
[Tue May 15 14:21:38 2007] [1804:3328] [info]
ajp_send_request::jk_ajp_common.c (1170): (myworker) socket 748 is not
connected any more (errno=0)
[Tue May 15 14:21:38 2007] [1804:3328] [info]
ajp_send_request::jk_ajp_common.c (1194): (myworker) error sending request.
Will try another pooled connection
[Tue May 15 14:21:38 2007] [1804:3328] [info]
ajp_send_request::jk_ajp_common.c (1170): (myworker) socket 784 is not
connected any more (errno=0)
[Tue May 15 14:21:38 2007] [1804:3328] [info]
ajp_send_request::jk_ajp_common.c (1194): (myworker) error sending request.
Will try another pooled connection
[Tue May 15 14:21:38 2007] [1804:3328] [info]
ajp_send_request::jk_ajp_common.c (1218): (myworker) all endpoints are
disconnected or dead
[Tue May 15 14:21:38 2007] [1804:3328] [info]  ajp_service::jk_ajp_common.c
(1867): (myworker) sending request to tomcat failed,  recoverable operation
attempt=1

As these are the only errors I see in any of my log files, I am convinced
this is why users will
periodically see frames that think Tomcat is not responding, why users do
not see these unavailable
errors in frames every time it occurs in the mod_jk.log is a little beyond
me.  We are tied to this
version of Tomcat (5.5.15) and to Java 1.5.0_05 by the commercial
application we are running, for support
purposes, even though their support has been unable to help us.

Any help I can get to at least resolve the errors I see in the mod_jk.log
would be great or if you see any
other errors in my configuration, although I think I have corrected it
pretty well.  See below.

Thanks

Brice

workers.properties
#####################################
workers.tomcat_home=D:\Tomcat5515
workers.java_home=D:\jdk1.5.0_05
ps=/
worker.list=myworker

worker.myworker.type=ajp13
worker.myworker.host=localhost
worker.myworker.port=8009
worker.myworker.cachesize=10
worker.myworker.cache_timeout=600
worker.myworker.socket_keepalive=1
worker.myworker.recycle_timeout=30
worker.myworker.lbfactor=1
#####################################

ssl.conf
#####################################
<IfDefine SSL>
    Listen 443
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl    .crl
    SSLPassPhraseDialog  builtin
    SSLSessionCache         dbm:logs/ssl_scache
    SSLSessionCacheTimeout  1500
    SSLMutex default
    SSLRandomSeed startup builtin
    SSLRandomSeed connect builtin

</IfDefine>
#####################################

httpd.conf snippet that I feel is relevant, I can post more if needed
#####################################
<IfModule mod_ssl.c>
    Include conf/ssl.conf
</IfModule>
<IfModule mod_jk.c>
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log

    # Set the jk log level [debug/error/info]
    JkLogLevel debug
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

    # JkOptions indicate to send SSL KEY SIZE,
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
    # JkRequestLogFormat set the request format
    JkRequestLogFormat "%w %V %T"
</IfModule>
NameVirtualHost xxx.xxx.xxx.xxx:443
<IfDefine SSL>
    <VirtualHost xxx.xxx.xxx.xxx:443>
        ServerName mytomcatservername.net
        <Directory />
            Options FollowSymLinks -Indexes
            AllowOverride none
        </Directory>
        SSLEngine on
        SSLCertificateFile conf/ssl.crt/server.crt
        SSLCertificateKeyFile conf/ssl.key/server.key

        JkMount /applicationname/*.jsp myworker
        JkMount /applicationname/servlet/* myworker
        JkMount /applicationname/servlet myworker
    </VirtualHost>
</IfDefine>
#####################################

server.xml
#####################################
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"
/>
  <Listener className="
org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="
org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>


  <GlobalNamingResources>

    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>

    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
       description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
          pathname="conf/tomcat-users.xml" />

  </GlobalNamingResources>

  <Service name="Catalina">

    <Connector port="8009"
               enableLookups="false" redirectPort="8443"
connectionTimeout="0" protocol="AJP/1.3" />

    <Engine jvmRoute="ematrix" name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

      </Host>

    </Engine>

  </Service>

</Server>
#####################################