Thanks Chris,

I just bumped into a very nice plugin for Jconsole called "TopThread".
It's a linux top alike and shows the CPU usage of all threads.
This only confirms what I figured out before, there are two threads
taking up all CPU. See below for their stack trace:

com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl
$PrologDriver.next(XMLDocumentScannerImpl.java:930)
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(XMLStreamReaderImpl.java:548)
<<<<<-------->>>>IT SEEMS THE ABOVE PART IS REPORTEDLY EXECUTED BY THE
BELOW LINE<<<<<-------->>>>> 
org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:44)
org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoint.java:64)
org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel.java:38)
org.codehaus.xfire.transport.http.XFireServletController.invoke(XFireServletController.java:304)
org.codehaus.xfire.transport.http.XFireServletController.doService(XFireServletController.java:129)
org.codehaus.xfire.transport.http.XFireServlet.doPost(XFireServlet.java:116)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Thread.java:619)


Also, I noticed something else..
After a while (15-20mins) the webapp is accessible again (without
restarting Tomcat), although CPU usage keeps hitting 100%. Could it be
that Tomcat ran out of connectors (maxThreads was hit) and after a while
they get closed by the timeout?
This could be a plausible explanation, although, the weird thing still
is why this coincides with the CPU topping 100%.

Still puzzled :)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to