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

Reply via email to