But following Yoav's recommendation I ran './catalina.sh stop' and then did a 'kill -s SIGQUIT' on the JVM process and got this lovely long thread dump in my catalina.out.
The only thread that makes any sense to me, because it refers to a bit of my own code, is thread number 15. I use my bean to download selected files from one of several ftp mirrors.
But nothing else seems to make sense, is it ture that I shouldn't be using ftp from a bean?
All the other threads were various parts of Java either 'waiting for a condition' or 'locked'...
Cheers Sam
"Thread-15" daemon prio=1 tid=0x085beba0 nid=0x38f7 waiting on condition [4e7f7000..4e7f8714]
at java.io.BufferedInputStream.ensureOpen(BufferedInputStream.java:119)
at java.io.BufferedInputStream.read(BufferedInputStream.java:199)
- locked <0x45152a48> (a java.io.BufferedInputStream)
at sun.net.TransferProtocolClient.readServerResponse(TransferProtocolClient.java:49)
at sun.net.ftp.FtpClient.readReply(FtpClient.java:211)
at sun.net.ftp.FtpClient.openServer(FtpClient.java:424)
at sun.net.ftp.FtpClient.<init>(FtpClient.java:692)
at sun.net.www.protocol.ftp.FtpURLConnection.connect(FtpURLConnection.java:175)
- locked <0x45152ac8> (a sun.net.www.protocol.ftp.FtpURLConnection)
at sun.net.www.protocol.ftp.FtpURLConnection.getInputStream(FtpURLConnection.java:257)
at edu.northwestern.monster.bean.UploadBean.pdbDownload(UploadBean.java:379)
at edu.northwestern.monster.bean.UploadBean.doPost(UploadBean.java:298)
at org.apache.jsp.monster_jsp._jspService(monster_jsp.java:81)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:509)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:261)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:534)
Shapira, Yoav wrote:
Howdy,
If I shut down Catalina and the process persists, then can I assumethat
all the Catalina-associated threads have been shut down and what I'm
looking at are the persistent threads?
Yeah, plus the JVM root threads (main, Finalizer, Event) that cannot shut down before your threads do. These are easily identified by name in the thread dump.
Yoav Shapira
This e-mail, including any attachments, is a confidential business communication, and may contain information that is confidential, proprietary and/or privileged. This e-mail is intended only for the individual(s) to whom it is addressed, and may not be saved, copied, printed, disclosed or used by anyone else. If you are not the(an) intended recipient, please immediately delete this e-mail from your computer system and notify the sender. Thank you.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
