Hi.

For all of you who were so kind to respond to my problem a few days ago,
and for others who'd like to know, I think I have found the problem.

As mentioned in earlier mails, the application I monitor hangs after a
random amount of time. Using jconsole and virtualvm I managed to detect
the threads that were causing the hangup and showed the following in
their stacktraces:

> 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)

Now, I don't know why (since I'm a noob programmer), but it seems that
the implementation of Xerces that is included in JDK6 is causing the
application to hang. Using JDK5 I don't see this behavior. (Off-topic:
is it discouraged to use TC6 with JDK5?).

The problem might be reside in Xerces implementation or rather an
incompatibility issue between JDK6 and XFire (I haven't found any
indications for that).

The thing is, using JDK5, I don't see any Xerces threads anymore that
are continuously running.

Cheers.

Pieter 

On Wed, 2009-01-28 at 18:13 +0100, Pieter Temmerman wrote:
> 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
> 
> 
-- 
Pieter Temmerman
email: ptemmerman....@sadiel.es
skype: ptemmerman.sadiel

SADIEL TECNOLOGÍAS DE LA INFORMACIÓN, S.A. http://www.sadiel.es.




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

Reply via email to