On 06.03.2009 21:02, Ian Long wrote:
I have fixed the problem by stopping the https ping so that these stuck
processes don't happen, but am digging into the problem a bit further.
I think you are right that it's apache waiting for tomcat to send data
back for the request, because if I look at the tomcat manager
application, I have entries like the following:
Stage Time B Sent B Recv Client VHost Request
S 28515259 ms 0 KB 0 KB 216.25.10.81 64.225.156.250 GET / HTTP/1.1
S 16878407 ms 0 KB 0 KB 76.64.59.226 ops-center.opterus.net GET
/login.faces HTTP/1.1
The VHost lists the ip address 64.225.156.250 instead of
ops-center.opterus.net as it does for 'proper' access.
The relevant bit of tomcat config:
<Engine name="Catalina" defaultHost="ops-center.opterus.net">
<Host appBase="webapps" name="ops-center.opterus.net" unpackWARs="true"
autoDeploy="false" deployOnStartup="false" >
<Context path="" allowLinking="true" docBase="ops-center-application"
debug="0" reloadable="false" >
<Manager className="org.apache.catalina.session.StandardManager"
pathname="" />
</Context>
<Context path="/manager" docBase="manager" debug="0" privileged="true"
reloadable="false" />
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="ops-center.opterus.net." suffix=".txt" timestamp="true"/>
</Host>
<Host appBase="webapps" name="webservice.ops-center.opterus.net"
unpackWARs="true" autoDeploy="false" deployOnStartup="false" >
<Context path="" allowLinking="true" docBase="ops-center-webservice"
debug="0" reloadable="false" >
<Manager className="org.apache.catalina.session.StandardManager"
pathname="" />
</Context>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="webservice.ops-center.opterus.net." suffix=".txt"
timestamp="true"/>
</Host>
My JkMount is straigtforward:
JkMount /* ajp13
jKMount / ajp13
Since the defaultHost is ops-center.opterus.net, I would assume they
should all go to that host, and not /.
From all that I have read this looks like it is setup correctly, but
why is VHost 64.225.156.250 (I'm not even sure what that is) receiving
the 'GET /' request?
You can check what this IP resolves to, and also what your VHost's name
resolves to with nslookup:
nslookup 64.225.156.250
nslookup ops-center.opterus.net
I didn't check, what the manager actually displays in the VHost column,
but it's also possible, that it shows the string from a host header,
that might have been part of the request, like
GET / HTTP/1.1
Host: 64.225.156.250
Connection: Keep-Alive
You can send such a request to any host, not just 64.225.156.250. But it
is only speculation, that the manager VHost column might show the name
from the host header.
You can log a host header in your Tomcat access log (also in the httpd
access log) by extending the log format with "%{Host}i".
Anyways: the strange IP doesn't really explain, why those requests get
stuck. And even though you now stopped those, it sounds bad, that you
can fill up your app that easily with a lot of hanging requests. If you
can reproduce I definitely recommend using a thread dump (kill -QUIT
against Tomcat) to check what those threads are doing (results in
catalina.out).
Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org