I don't know how to tell apart wich ones are daemons or not... I just
have the total number of thread and the total number of daemon threads
(using jconsole)...
so the best I can give you is a threadump of all threads. sorry about
this.
thanks a lot.
cheers,
bruno coelho
2009-09-22 15:41:15
Full thread dump Java HotSpot(TM) Client VM (1.5.0_20-141 mixed mode,
sharing):
"RMI TCP Connection(11)-10.100.131.165" - Thread t...@49
java.lang.Thread.State: RUNNABLE
at sun.management.ThreadImpl.getThreadInfo0(Native Method)
at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:142)
at sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:120)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:592)
at sun.management.MXBeanSupport.invoke(MXBeanSupport.java:632)
at sun.management.MXBeanSupport.invoke(MXBeanSupport.java:94)
at
com
.sun
.jmx.mbeanserver.DynamicMetaDataImpl.invoke(DynamicMetaDataImpl.java:
213)
at
com.sun.jmx.mbeanserver.MetaDataImpl.invoke(MetaDataImpl.java:220)
at
com
.sun
.jmx
.interceptor
.DefaultMBeanServerInterceptor
.invoke(DefaultMBeanServerInterceptor.java:815)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:784)
at
javax
.management
.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1410)
at javax.management.remote.rmi.RMIConnectionImpl.access
$100(RMIConnectionImpl.java:81)
at javax.management.remote.rmi.RMIConnectionImpl
$PrivilegedOperation.run(RMIConnectionImpl.java:1247)
at
javax
.management
.remote
.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:
1343)
at
javax
.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:
784)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun
.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
39)
at
sun
.reflect
.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:592)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
at sun.rmi.transport.tcp.TCPTransport
$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:613)
"JMX server connection timeout 48" - Thread t...@48
java.lang.Thread.State: TIMED_WAITING on [...@fe3515
at java.lang.Object.wait(Native Method)
at com.sun.jmx.remote.internal.ServerCommunicatorAdmin
$Timeout.run(ServerCommunicatorAdmin.java:150)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Connection(10)-10.100.131.165" - Thread t...@47
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:
218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:
235)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
at sun.rmi.transport.tcp.TCPTransport
$ConnectionHandler.run(TCPTransport.java:707)
at java.lang.Thread.run(Thread.java:613)
"DestroyJavaVM" - Thread t...@46
java.lang.Thread.State: RUNNABLE
"http-8180-1" - Thread t...@40
java.lang.Thread.State: WAITING on
org.apache.tomcat.util.net.jioendpoint$wor...@4f092f
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at org.apache.tomcat.util.net.JIoEndpoint
$Worker.await(JIoEndpoint.java:423)
at org.apache.tomcat.util.net.JIoEndpoint
$Worker.run(JIoEndpoint.java:449)
at java.lang.Thread.run(Thread.java:613)
"RMI LeaseChecker" - Thread t...@28
java.lang.Thread.State: TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:310)
at java.lang.Thread.run(Thread.java:613)
"TP-Processor4" - Thread t...@23
java.lang.Thread.State: WAITING on
org.apache.jk.common.channelsoc...@e417e7
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at
org.apache.jk.common.ChannelSocket.accept(ChannelSocket.java:301)
at
org
.apache.jk.common.ChannelSocket.acceptConnections(ChannelSocket.java:
661)
at org.apache.jk.common.ChannelSocket
$SocketAcceptor.runIt(ChannelSocket.java:872)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:613)
"http-8180-Acceptor-0" - Thread t...@19
java.lang.Thread.State: TIMED_WAITING
at java.lang.Thread.sleep(Native Method)
at org.apache.tomcat.util.net.JIoEndpoint
$Acceptor.run(JIoEndpoint.java:309)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Accept-9999" - Thread t...@17
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:
340)
at java.lang.Thread.run(Thread.java:613)
"GC Daemon" - Thread t...@16
java.lang.Thread.State: TIMED_WAITING on sun.misc.GC
$latencyl...@dd475a
at java.lang.Object.wait(Native Method)
at sun.misc.GC$Daemon.run(GC.java:100)
"RMI Reaper" - Thread t...@15
java.lang.Thread.State: WAITING on java.lang.ref.ReferenceQueue
$l...@779e93
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:
336)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Accept-0" - Thread t...@14
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:
340)
at java.lang.Thread.run(Thread.java:613)
"RMI TCP Accept-0" - Thread t...@9
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
at java.net.ServerSocket.implAccept(ServerSocket.java:450)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at sun.management.jmxremote.LocalRMIServerSocketFactory
$1.accept(LocalRMIServerSocketFactory.java:31)
at sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:
340)
at java.lang.Thread.run(Thread.java:613)
"Timer-0" - Thread t...@8
java.lang.Thread.State: TIMED_WAITING on java.util.taskqu...@4bc5a5
at java.lang.Object.wait(Native Method)
at java.util.TimerThread.mainLoop(Timer.java:509)
at java.util.TimerThread.run(Timer.java:462)
"Signal Dispatcher" - Thread t...@4
java.lang.Thread.State: RUNNABLE
"Finalizer" - Thread t...@3
java.lang.Thread.State: WAITING on java.lang.ref.ReferenceQueue
$l...@9cfedf
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:120)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:136)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:
159)
"Reference Handler" - Thread t...@2
java.lang.Thread.State: WAITING on java.lang.ref.Reference
$l...@210089
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference
$ReferenceHandler.run(Reference.java:116)
On Sep 22, 2009, at 3:36 PM, Sébastien Launay wrote:
Hi Bruno,
Le 22/09/2009 16:10, Bruno Coelho a écrit :
with the jconsole I can see that after the shutdown script it's
called
there are still 17 or 19 threads running but only 15 or 17 are daemon
threads,
the other ones I don't know what they are.
I suspect that the problem is related with this 2 threads that only
after they desapear the tomcat will die.
Can you provide details about these 2 non deamon threads like name
and stack trace ?
--
Sébastien Launay