I have migrated a customer's server system to the following
configuration:
 
MS IIS 6.0 (port 80)
Unlimited connections
Connection timeout: 120s keep-alive
 
JK 1.2.25 AJP/1.3 Connector
isapi_redirect.properties:
uri_select=parsed
 
workers.properties:
connect_timeout=10000
prepost_timeout=10000
socket_timeout=10
connection_pool_timeout=60
connection_pool_size=350

Apache Tomcat 5.5.20 (ports 8080 / 8009)
Apache Portable Runtime tcnative-1.dll 1.1.12 installed
Java options: -XX:MaxPermSize=512m -Xloggc:D:\logs\gc\tomcat-gc.log
-XX:+PrintGCDetails -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:+UseTLAB -XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled -Xms4096m -Xmx5120m

server.xml connector 8009:
acceptCount="100" maxThreads="400" minSpareThreads="25"
maxSpareThreads="75" connectionTimeout="60000"

This is a dual-core Xeon machine running Windows Server 2003 x64 with 6
GB RAM and Sun Java JDK 1.5.

I have to reboot Tomcat every night, and even then I have to restart
Tomcat manually almost every day because of a "Service temporary
unavailable" message. When Tomcat is hanging, JK Status Manager shows a
Bad/Stopped worker. A reset of the worker doesn't fix the problem,
neither does a restart of IIS. Only restarting Tomcat fixes the problem.

The isapi_redirect log contains a lot of these lines:
[Wed Jul 02 16:19:16.908 2008] [11604:13424] [info]
ajp_send_request::jk_ajp_common.c (1265): (ajp13w) all endpoints are
disconnected
[Wed Jul 02 16:19:16.908 2008] [11604:13424] [info]
ajp_service::jk_ajp_common.c (2085): (ajp13w) sending request to tomcat
failed,  recoverable operation attempt=1

I have also tried the 1.2.26 connector. It seemed like it needed a
restart even sooner with that one. These lines were in
isapi_redirect.log a lot of times with the 1.2.26 version:
[Wed Jul 02 15:44:51.040 2008] [11604:12396] [error]
ajp_connection_tcp_get_message::jk_ajp_common.c (966): (ajp13w) can't
receive the response message from tomcat, network problems or tomcat
(127.0.0.1:8009) is down (errno=60)
[Wed Jul 02 15:44:51.040 2008] [11604:12396] [error]
ajp_get_reply::jk_ajp_common.c (1658): (ajp13w) Tomcat is down or
refused connection. No response has been sent to the client (yet)
[Wed Jul 02 15:44:51.040 2008] [11604:12396] [info]
ajp_service::jk_ajp_common.c (2046): (ajp13w) receiving from tomcat
failed, recoverable operation attempt=0
[Wed Jul 02 15:44:51.040 2008] [11604:12396] [info]
ajp_service::jk_ajp_common.c (2085): (ajp13w) sending request to tomcat
failed,  recoverable operation attempt=1
[Wed Jul 02 15:44:51.946 2008] [11604:13156] [error]
ajp_service::jk_ajp_common.c (2097): (ajp13w) Connecting to tomcat
failed. Tomcat is probably not started or is listening on the wrong port
[Wed Jul 02 15:44:51.962 2008] [11604:13156] [info]
service::jk_lb_worker.c (1128): service failed, worker ajp13w is in
error state
[Wed Jul 02 15:44:51.962 2008] [11604:13156] [info]
service::jk_lb_worker.c (1191): All tomcat instances are busy or in
error state
[Wed Jul 02 15:44:51.962 2008] [11604:13156] [error]
HttpExtensionProc::jk_isapi_plugin.c (1537): service() failed with http
error 503

Nothing important seems to be in the stdout logs right before the
problems occur. Only when I was using 1.2.26 of the connector, lots of
these messages show up in the stdout:

Jul 2, 2008 1:14:17 PM org.apache.jk.common.ChannelSocket
processConnection
WARNING: processCallbacks status 2
Jul 2, 2008 1:14:17 PM org.apache.jk.core.MsgContext action
WARNING: Error sending end packet
java.net.SocketException: Software caused connection abort: socket write
error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at
java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at
org.apache.jk.common.ChannelSocket.send(ChannelSocket.java:531)
        at
org.apache.jk.common.JkInputStream.endMessage(JkInputStream.java:112)
        at org.apache.jk.core.MsgContext.action(MsgContext.java:293)
        at org.apache.coyote.Response.action(Response.java:182)
        at org.apache.coyote.Response.finish(Response.java:304)
        at
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:281)
        at
org.apache.catalina.connector.Response.finishResponse(Response.java:476)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
51)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
        at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
697)
        at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.
java:889)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
        at java.lang.Thread.run(Thread.java:595)

I'm starting to be pretty desperate, after almost two weeks of daily
reboots and an angry customer.
A suggestion, anyone? Thanks in advance.

Jesse.

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to