Good day, I've been working on closing all my threads in my applications that run on Tomcat. I recently upgraded to 7.0.14 to get better messages concerning why Tomcat wasn't shutting down properly. I have stopped all my servlets and threads, but I'm still having trouble. Below is the thread dump of the most recent shutdown and my catalina log. I don't see any of my threads in there, so what is keeping Tomcat alive?
2011-06-10 09:07:32 Full thread dump Java HotSpot(TM) 64-Bit Server VM (19.0-b09 mixed mode): "DestroyJavaVM" prio=3D10 tid=3D0x000000005d1e9800 nid=3D0x5155 waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Worker-JM" prio=3D10 tid=3D0x000000005d7a1800 nid=3D0x521f in Object.wait() [0x0000000042ce2000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b69c2050> (a java.util.ArrayList) at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58) - locked <0x00000000b69c2050> (a java.util.ArrayList) "Bundle File Closer" daemon prio=3D10 tid=3D0x000000005e223800 nid=3D0x521d in Object.wait() [0x0000000042be1000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b6a67768> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:485) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397) - locked <0x00000000b6a67768> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333) "Start Level Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d5fc000 nid=3D0x521b in Object.wait() [0x0000000042ae0000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b68c5d38> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:485) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397) - locked <0x00000000b68c5d38> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333) "Framework Event Dispatcher" daemon prio=3D10 tid=3D0x000000005d956800 nid=3D0x521a in Object.wait() [0x00000000429df000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b68f7278> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at java.lang.Object.wait(Object.java:485) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:397) - locked <0x00000000b68f7278> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:333) "GC Daemon" daemon prio=3D10 tid=3D0x000000005d299000 nid=3D0x5160 in Object.wait() [0x0000000040dea000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b48180b8> (a sun.misc.GC$LatencyLock) at sun.misc.GC$Daemon.run(GC.java:100) - locked <0x00000000b48180b8> (a sun.misc.GC$LatencyLock) "Low Memory Detector" daemon prio=3D10 tid=3D0x000000005ce8b000 nid=3D0x515e runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread1" daemon prio=3D10 tid=3D0x000000005ce88800 nid=3D0x515d waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=3D10 tid=3D0x000000005ce85000 nid=3D0x515c waiting on condition [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=3D10 tid=3D0x000000005ce82800 nid=3D0x515b runnable [0x0000000000000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=3D10 tid=3D0x000000005ce5e000 nid=3D0x515a in Object.wait() [0x000000004136b000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b4818800> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked <0x00000000b4818800> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) "Reference Handler" daemon prio=3D10 tid=3D0x000000005ce5c000 nid=3D0x5159 in Object.wait() [0x000000004126a000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x00000000b48180a8> (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked <0x00000000b48180a8> (a java.lang.ref.Reference$Lock) "VM Thread" prio=3D10 tid=3D0x000000005ce58000 nid=3D0x5158 runnable "GC task thread#0 (ParallelGC)" prio=3D10 tid=3D0x000000005ce11000 nid=3D0x5156 runnable "GC task thread#1 (ParallelGC)" prio=3D10 tid=3D0x000000005ce13000 nid=3D0x5157 runnable "VM Periodic Task Thread" prio=3D10 tid=3D0x000000005ce95800 nid=3D0x515f waiting on condition JNI global references: 979 Heap PSYoungGen total 32576K, used 26388K [0x00000000e6d60000, 0x00000000e91c0000, 0x0000000100000000) eden space 30208K, 79% used [0x00000000e6d60000,0x00000000e84e0000,0x00000000e8ae0000) from space 2368K, 98% used [0x00000000e8bc0000,0x00000000e8e05080,0x00000000e8e10000) to space 3520K, 0% used [0x00000000e8e50000,0x00000000e8e50000,0x00000000e91c0000) PSOldGen total 51584K, used 40926K [0x00000000b4800000, 0x00000000b7a60000, 0x00000000e6d60000) object space 51584K, 79% used [0x00000000b4800000,0x00000000b6ff79c0,0x00000000b7a60000) PSPermGen total 58304K, used 58283K [0x00000000af600000, 0x00000000b2ef0000, 0x00000000b4800000) object space 58304K, 99% used [0x00000000af600000,0x00000000b2eeafe0,0x00000000b2ef0000) catalina.out Jun 10, 2011 9:04:48 AM org.apache.catalina.core.StandardServer await INFO: A valid shutdown command was received via the shutdown port. Stopping the Server instance. Jun 10, 2011 9:04:48 AM org.apache.coyote.AbstractProtocolHandler pause INFO: Pausing ProtocolHandler ["http-bio-8088"] Jun 10, 2011 9:04:49 AM org.apache.coyote.AbstractProtocolHandler pause INFO: Pausing ProtocolHandler ["http-bio-8443"] Jun 10, 2011 9:04:50 AM org.apache.coyote.AbstractProtocolHandler pause INFO: Pausing ProtocolHandler ["ajp-bio-8009"] Jun 10, 2011 9:04:51 AM org.apache.catalina.core.StandardService stopInternal INFO: Stopping service Catalina [SimpleHTTPServer] Stop called [INFO] Shut down connection listener [INFO] Shut down HTTP processors [INFO] HTTP protocol handler shut down Jun 10, 2011 9:04:56 AM org.apache.catalina.loader.WebappClassLoader clearReferencesStopTimerThread SEVERE: The web application [/axis2] appears to have started a TimerThread named [Timer-0] via the java.util.Timer API but has failed to stop it. To prevent a memory leak, the timer (and hence the associated thread) has been forcibly canceled. (***I looked in the logs that run this and it does get cancelled. Also, this is not in the thread dump listed above.****) Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop INFO: Stopping ProtocolHandler ["http-bio-8088"] Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop INFO: Stopping ProtocolHandler ["http-bio-8443"] Jun 10, 2011 9:04:56 AM org.apache.coyote.AbstractProtocolHandler stop INFO: Stopping ProtocolHandler ["ajp-bio-8009"] Thanks, April --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org