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