Java线程转储中的孤立线程

时间:2011-11-07 21:45:49

标签: java thread-dump

我在线程转储java应用程序中经常出现“孤立”线程。 我的应用程序本身似乎被冻结,cpu活动非常低,我的线程转储显示许多线程等待锁定对象,但没有线程锁定该对象。

是否有人似乎有类似的情况,并对如何进一步诊断提出任何建议?

这是线程转储:

完全线程转储Java HotSpot(TM)64位服务器VM(1.5.0_12-b04混合模式):

"RMI TCP Connection(17)-10.162.107.103" daemon prio=1 tid=0x0000002c094b6600 nid=0x3856 runnable [0x000000004499a000..0x000000004499aeb0]
    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)
    - locked  (a java.io.BufferedInputStream)
    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:595)

"RMI TCP Connection(16)-10.162.107.103" daemon prio=1 tid=0x0000002c08067990 nid=0x3855 runnable [0x0000000044899000..0x0000000044899d30]
    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)
    - locked  (a java.io.BufferedInputStream)
    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:595)

"RMI TCP Connection(13)-10.162.107.103" daemon prio=1 tid=0x0000002c080680d0 nid=0x3594 runnable [0x0000000044596000..0x0000000044596b30]
    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)
    - locked  (a java.io.BufferedInputStream)
    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:595)

"JMX server connection timeout 86" daemon prio=1 tid=0x0000002c08a9f000 nid=0x34c8 in Object.wait() [0x0000000044394000..0x0000000044394e30]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a [I)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
    - locked  (a [I)
    at java.lang.Thread.run(Thread.java:595)

"RMI TCP Connection(11)-10.162.107.103" daemon prio=1 tid=0x0000002c096a6d80 nid=0x34c6 in Object.wait() [0x0000000044191000..0x0000000044192eb0]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:344)
    - locked  (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:122)
    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:169)
    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1215)
    at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    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:595)

"RMI TCP Connection(10)-10.162.107.103" daemon prio=1 tid=0x0000002c084513b0 nid=0x3067 runnable [0x0000000043c8d000..0x0000000043c8dd30]
    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)
    - locked  (a java.io.BufferedInputStream)
    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:595)

"RMI TCP Connection(8)-10.162.107.103" daemon prio=1 tid=0x0000002c07f7f980 nid=0x2acd runnable [0x0000000044293000..0x0000000044293c30]
    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)
    - locked  (a java.io.BufferedInputStream)
    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:595)

"RMI LeaseChecker" daemon prio=1 tid=0x0000002c080f6990 nid=0x264c waiting on condition [0x0000000043d8e000..0x0000000043d8ecb0]
    at java.lang.Thread.sleep(Native Method)
    at sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:310)
    at java.lang.Thread.run(Thread.java:595)

"OracleTimeoutPollingThread" daemon prio=1 tid=0x0000002c08b70320 nid=0x9ae waiting on condition [0x0000000043b8c000..0x0000000043b8cbb0]
    at java.lang.Thread.sleep(Native Method)
    at oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)

"ProcessActivities_29 Thread" prio=1 tid=0x0000002c06961d50 nid=0x8e4 waiting for monitor entry [0x0000000043a8b000..0x0000000043a8be30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_28 Thread" prio=1 tid=0x0000002c06960930 nid=0x8e3 waiting for monitor entry [0x000000004398a000..0x000000004398aeb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_27 Thread" prio=1 tid=0x0000002c0695f4e0 nid=0x8e2 waiting for monitor entry [0x0000000043889000..0x0000000043889d30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_26 Thread" prio=1 tid=0x0000002c0695e4a0 nid=0x8e1 waiting for monitor entry [0x0000000043788000..0x0000000043788db0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_25 Thread" prio=1 tid=0x0000002c05e745c0 nid=0x8e0 waiting for monitor entry [0x0000000043687000..0x0000000043687c30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_24 Thread" prio=1 tid=0x0000002c05e73490 nid=0x8df waiting for monitor entry [0x0000000043586000..0x0000000043586cb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_23 Thread" prio=1 tid=0x0000002c05e71db0 nid=0x8de waiting for monitor entry [0x0000000043485000..0x0000000043485b30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_22 Thread" prio=1 tid=0x0000002c05e70990 nid=0x8dd waiting for monitor entry [0x0000000043384000..0x0000000043384bb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_21 Thread" prio=1 tid=0x0000002c05e6f540 nid=0x8dc waiting for monitor entry [0x0000000043283000..0x0000000043283e30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_20 Thread" prio=1 tid=0x0000002c05e6e410 nid=0x8db waiting for monitor entry [0x0000000043182000..0x0000000043182eb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_19 Thread" prio=1 tid=0x0000002c05ee7a90 nid=0x8da waiting for monitor entry [0x0000000043081000..0x0000000043081d30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_18 Thread" prio=1 tid=0x0000002c05ee6960 nid=0x8d9 waiting for monitor entry [0x0000000042f80000..0x0000000042f80db0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_17 Thread" prio=1 tid=0x0000002c05ee5280 nid=0x8d8 waiting for monitor entry [0x0000000042e7f000..0x0000000042e7fc30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_16 Thread" prio=1 tid=0x0000002c05ee3e60 nid=0x8d7 waiting for monitor entry [0x0000000042d7e000..0x0000000042d7ecb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_15 Thread" prio=1 tid=0x0000002c05ee2a10 nid=0x8d6 waiting for monitor entry [0x0000000042c7d000..0x0000000042c7db30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_14 Thread" prio=1 tid=0x0000002c05ee19f0 nid=0x8d5 waiting for monitor entry [0x0000000042b7c000..0x0000000042b7cbb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_13 Thread" prio=1 tid=0x0000002c0a55c820 nid=0x8d4 waiting for monitor entry [0x0000000042a7b000..0x0000000042a7be30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_12 Thread" prio=1 tid=0x0000002c0a55b6f0 nid=0x8d3 waiting for monitor entry [0x000000004297a000..0x000000004297aeb0]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    at com.conceptwave.process.CwpPEContext.commitMemoryTransaction(CwpPEContext.java:99)
    at com.conceptwave.process.CwpThread.commitPETransaction(CwpThread.java:90)
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:466)

"ProcessActivities_11 Thread" prio=1 tid=0x0000002c0a55a010 nid=0x8d2 waiting for monitor entry [0x0000000042879000..0x0000000042879d30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_10 Thread" prio=1 tid=0x0000002c0a558bf0 nid=0x8d1 waiting for monitor entry [0x0000000042778000..0x0000000042778db0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_09 Thread" prio=1 tid=0x0000002c0a5577a0 nid=0x8d0 waiting for monitor entry [0x0000000042677000..0x0000000042677c30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_08 Thread" prio=1 tid=0x0000002c083ffb80 nid=0x8cf waiting for monitor entry [0x0000000042576000..0x0000000042576cb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_07 Thread" prio=1 tid=0x0000002c083fe470 nid=0x8ce waiting for monitor entry [0x0000000042475000..0x0000000042475b30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_06 Thread" prio=1 tid=0x0000002c083fd340 nid=0x8cd runnable [0x0000000042374000..0x0000000042374bb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:231)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_05 Thread" prio=1 tid=0x0000002c083fbc60 nid=0x8cc waiting for monitor entry [0x0000000042273000..0x0000000042273e30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_04 Thread" prio=1 tid=0x0000002c083fa840 nid=0x8cb waiting for monitor entry [0x0000000042172000..0x0000000042172eb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_03 Thread" prio=1 tid=0x0000002c087bcb90 nid=0x8ca runnable [0x0000000042071000..0x0000000042071d30]
    at com.conceptwave.process.CwpActivityInfoCache.checkForActivity(CwpActivityInfoCache.java:159)
    at com.conceptwave.process.CwpActivityInfoCache.getExistingActivity(CwpActivityInfoCache.java:190)
    at com.conceptwave.process.CwpProcess.getActivityIfExists(CwpProcess.java:2200)
    at com.conceptwave.process.CwpProcess.isRunning(CwpProcess.java:1984)
    at com.conceptwave.process.CwpActivityQueueThread.startPendingException(CwpActivityQueueThread.java:787)
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:405)

"ProcessActivities_02 Thread" prio=1 tid=0x0000002c087bb770 nid=0x8c9 waiting for monitor entry [0x0000000041f70000..0x0000000041f70db0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_01 Thread" prio=1 tid=0x0000002c08a6dc30 nid=0x8c8 waiting for monitor entry [0x0000000041e6f000..0x0000000041e6fc30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_00 Thread" prio=1 tid=0x0000002c08d15a50 nid=0x8c7 waiting for monitor entry [0x0000000041d6e000..0x0000000041d6ecb0]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

"Participants Queue" prio=1 tid=0x0000002c0a9b5330 nid=0x8c6 waiting for monitor entry [0x0000000041c6d000..0x0000000041c6db30]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    at com.conceptwave.process.CwpParticipantsThread.processMatchedActivity(CwpParticipantsThread.java:436)
    at com.conceptwave.process.CwpParticipantsThread.processWaitingQueue(CwpParticipantsThread.java:367)
    at com.conceptwave.process.CwpParticipantsThread.run(CwpParticipantsThread.java:248)
    - locked  (a com.conceptwave.process.CwpParticipantsThread)

"GlobalRequests Queue" prio=1 tid=0x0000002c067cecf0 nid=0x8c5 waiting for monitor entry [0x0000000041b6c000..0x0000000041b6cbb0]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    at com.conceptwave.process.CwpGlobalRequestsThread.processRequest(CwpGlobalRequestsThread.java:323)
    at com.conceptwave.process.CwpGlobalRequestsThread.run(CwpGlobalRequestsThread.java:175)

"TaskDistribution Queue" prio=1 tid=0x0000002c096a7e40 nid=0x8c4 waiting on condition [0x0000000041a6b000..0x0000000041a6be30]
    at java.lang.Thread.sleep(Native Method)
    at com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    at com.conceptwave.process.CwpIncrementalWaitThread.waitCurrently(CwpIncrementalWaitThread.java:173)
    at com.conceptwave.process.CwpTaskDistributionThread.run(CwpTaskDistributionThread.java:22)

"StartRestart Queue" prio=1 tid=0x0000002c09696c10 nid=0x8c3 waiting for monitor entry [0x000000004196a000..0x000000004196aeb0]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpStartProcessesThread.restartTheProcessList(CwpStartProcessesThread.java:181)
    at com.conceptwave.process.CwpStartProcessesThread.run(CwpStartProcessesThread.java:87)

"GlobalProcesses Queue" prio=1 tid=0x0000002c08c87990 nid=0x8c2 waiting for monitor entry [0x0000000041869000..0x0000000041869d30]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpGlobalProcessThread.enqueueCheckCommand(CwpGlobalProcessThread.java:199)
    at com.conceptwave.process.CwpGlobalProcessThread.run(CwpGlobalProcessThread.java:126)

"SocketListener" prio=1 tid=0x0000002c061cfc50 nid=0x8a8 waiting for monitor entry [0x0000000041767000..0x0000000041768d30]
    at com.conceptwave.process.CwpParticipantsThread.getDBCacheData(CwpParticipantsThread.java:450)
    - waiting to lock  (a com.conceptwave.process.CwpParticipantsThread)
    at com.conceptwave.process.CwpProcess.getParticipantsQueueData(CwpProcess.java:1700)
    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:585)
    at com.conceptwave.javascript.CwfScriptFunctionObject.call(CwfScriptFunctionObject.java:368)
    at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
    at org.mozilla.javascript.gen.c1422._c2( (a com.conceptwave.process.CwpActivityQueue)
    at com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    at com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    at com.conceptwave.process.CwpDelayedActivitiesThread.run(CwpDelayedActivitiesThread.java:271)

"HeartBeat" prio=1 tid=0x0000002c0c84ff90 nid=0x8a6 waiting on condition [0x0000000041465000..0x0000000041465c30]
    at java.lang.Thread.sleep(Native Method)
    at com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    at com.conceptwave.system.CwfAVMHeartBeat.run(CwfAVMHeartBeat.java:288)

"ClockThread" prio=1 tid=0x0000002c09dc2a20 nid=0x8a5 waiting on condition [0x0000000041566000..0x0000000041566cb0]
    at java.lang.Thread.sleep(Native Method)
    at com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    at com.conceptwave.system.CwfClockThread.run(CwfClockThread.java:32)

"Thread-5" daemon prio=1 tid=0x0000002c07eec270 nid=0x706 waiting on condition [0x0000000041364000..0x0000000041364cb0]
    at java.lang.Thread.sleep(Native Method)
    at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)

"Thread-4" daemon prio=1 tid=0x0000002c088ecde0 nid=0x705 waiting on condition [0x0000000041263000..0x0000000041263b30]
    at java.lang.Thread.sleep(Native Method)
    at oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)

"RMI TCP Accept-10001" daemon prio=1 tid=0x0000002c07e7c730 nid=0x6c6 runnable [0x0000000041061000..0x0000000041061eb0]
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    - locked  (a java.net.SocksSocketImpl)
    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:595)

"RMI TCP Accept-0" daemon prio=1 tid=0x0000002c07e78c70 nid=0x6c5 runnable [0x0000000040f60000..0x0000000040f60d30]
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    - locked  (a java.net.SocksSocketImpl)
    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:595)

"Timer-0" daemon prio=1 tid=0x0000002c061fb720 nid=0x6c4 in Object.wait() [0x0000000040e5f000..0x0000000040e5fdb0]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a java.util.TaskQueue)
    at java.lang.Object.wait(Object.java:474)
    at java.util.TimerThread.mainLoop(Timer.java:483)
    - locked  (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

"Low Memory Detector" daemon prio=1 tid=0x0000002c02f2ecd0 nid=0x6c3 runnable [0x0000000000000000..0x0000000000000000]

"CompilerThread1" daemon prio=1 tid=0x0000002c02f2d0a0 nid=0x6c2 waiting on condition [0x0000000000000000..0x0000000040c5c610]

"CompilerThread0" daemon prio=1 tid=0x0000002c02f2baf0 nid=0x6c1 waiting on condition [0x0000000000000000..0x0000000040b5b460]

"AdapterThread" daemon prio=1 tid=0x0000002c02f2a390 nid=0x6c0 waiting on condition [0x0000000000000000..0x0000000000000000]

"Signal Dispatcher" daemon prio=1 tid=0x0000002c02f29030 nid=0x6bf waiting on condition [0x0000000000000000..0x0000000000000000]

"Finalizer" daemon prio=1 tid=0x0000002c02f14d60 nid=0x6be in Object.wait() [0x0000000040859000..0x0000000040859eb0]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - locked  (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=1 tid=0x0000002c02f14530 nid=0x6bd in Object.wait() [0x0000000040758000..0x0000000040758d30]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:474)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked  (a java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x00000000401164d0 nid=0x6b6 in Object.wait() [0x0000007fbfffc000..0x0000007fbfffd080]
    at java.lang.Object.wait(Native Method)
    - waiting on  (a java.lang.Class)
    at java.lang.Object.wait(Object.java:474)
    at com.conceptwave.process.CwpProcessManager.main(CwpProcessManager.java:397)
    - locked  (a java.lang.Class)

"VM Thread" prio=1 tid=0x0000002c02f10060 nid=0x6bc runnable 

"GC task thread#0 (ParallelGC)" prio=1 tid=0x0000000040133d50 nid=0x6b7 runnable 

"GC task thread#1 (ParallelGC)" prio=1 tid=0x0000000040134bd0 nid=0x6b8 runnable 

"GC task thread#2 (ParallelGC)" prio=1 tid=0x0000000040135a50 nid=0x6b9 runnable 

"GC task thread#3 (ParallelGC)" prio=1 tid=0x00000000401368d0 nid=0x6ba runnable 

"VM Periodic Task Thread" prio=1 tid=0x0000002c07e87830 nid=0x6c7 waiting on condition

1 个答案:

答案 0 :(得分:2)

首先,将来请减少你的线程转储。大量的线程都是重复的,可以这样标记。

让我觉得你有某种锁争用。我很惊讶JVM没有把它标记为死锁,但可能不是嵌套锁定问题。

你有几个:

"Participants Queue" prio=1 tid=0x0000002c0a9b5330 nid=0x8c6 waiting for monitor entry [0x0000000041c6d000..0x0000000041c6db30]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

然后你有一个似乎有效的线程:

"ProcessActivities_03 Thread" prio=1 tid=0x0000002c087bcb90 nid=0x8ca runnable [0x0000000042071000..0x0000000042071d30]
    at com.conceptwave.process.CwpActivityInfoCache.checkForActivity(CwpActivityInfoCache.java:159)
    at com.conceptwave.process.CwpActivityInfoCache.getExistingActivity(CwpActivityInfoCache.java:190)
    at com.conceptwave.process.CwpProcess.getActivityIfExists(CwpProcess.java:2200)

也许它陷入了循环?它持有什么锁?

你也有很多这些:

"ProcessActivities_29 Thread" prio=1 tid=0x0000002c06961d50 nid=0x8e4 waiting for monitor entry [0x0000000043a8b000..0x0000000043a8be30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

不知道是什么阻碍了他们。这些线程都没有被标记为守护进程,所以它们都必须自己完成或者在它们退出之前检测关闭信号(如volatile boolean shutdown字段)。如果他们不退出,那么您的JVM将永远不会自行关闭。