Hi,

I'm implementing a chat application, which sends all the chatting
output for each user in just one long query (servlet), which last
for the entire chatting session.

On leaving the chatroom, the client simply closes the connection,
thus makeing the query fail, leaving the processor in an error state.

tomcat displays this message:

Apr 21, 2004 7:08:21 AM org.apache.jk.server.JkCoyoteHandler action
SEVERE: Error in action code
java.net.SocketException: Broken pipe
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at
java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)


and also loads of these:

Apr 21, 2004 7:08:22 AM org.apache.jk.common.HandlerRequest invoke
INFO: Unknown message 0


the first seems OK to me, the second I'm not sure about.
Under heavy load, eventually all processors remain in error state,
which results in load of messages like this in mod_jk.log:

[Mon Apr 19 08:38:39 2004] (error ) [mod_jk2.c (576)]  mod_jk.handler()
Error connecting to tomcat 120000
[Mon Apr 19 08:38:39 2004] (error ) [jk_channel_apr_socket.c (488)]
channelApr.receive(): Error receiving message body -1 54
[Mon Apr 19 08:38:39 2004] (error ) [jk_workerEnv.c (492)]
workerEnv.processCallbacks() Error reading reply
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_ajp13.c (546)]
ajp13.service() ajpGetReply recoverable error 120000
[Mon Apr 19 08:38:39 2004] (error ) [jk_channel_apr_socket.c (296)]
channelApr.open() attempt to connect to 127.0.0.1:8010 (localhost) failed 61
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_ajp13.c (331)]
ajp13.connect() failed ajp13:localhost:8010
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_ajp13.c (412)]
ajp13.service() failed to connect endpoint errno=9 Bad file descriptor
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_ajp13.c (648)]
ajp13.service() Error  forwarding ajp13:localhost:8010 1 1
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_lb.c (427)]  lb.service()
worker failed 120000 for ajp13:localhost:8010
[Mon Apr 19 08:38:39 2004] (error ) [jk_worker_lb.c (367)]
lb_worker.service() all workers in error or disabled state


CPU usage of tomcat drops to 0% a thread dump shows

"TP-Processor25" daemon prio=5 tid=0x0888bc00 nid=0x8864c00 in Object.wait()
[9302000..9302cdc]
        at java.lang.Object.wait(Native Method)
        - waiting on <0x325e8c58> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Object.wait(Object.java:429)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:660)
        - locked <0x325e8c58> (a
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
        at java.lang.Thread.run(Thread.java:534)

for all processors. Is that the normal state of waiting for requests?
I believe (not sure if I checked), that tomcat still receives request
through
HTTP processors.

Any ideas?

I'm using freebsd, Apache 1.3.29 mod_ssl, Tomcat 5.0.19, mod_jk2 2.0.4,
and Sun Java SDK 1.4.2

Thank you!
Thomas


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to