2

Java アプリケーションのスレッド ダンプで「孤立した」スレッドが頻繁に発生しています。私のアプリケーション自体は非常に低い CPU アクティビティでフリーズしているように見えます。私のスレッド ダンプには、オブジェクトのロックを待機している多くのスレッドが示されていますが、そのオブジェクトをロックしているスレッドはありません。

誰かが同様の状況に見え、これをさらに診断する方法について提案がありますか?

スレッドダンプは次のとおりです。

フル スレッド ダンプ Java HotSpot(TM) 64 ビット サーバー VM (1.5.0_12-b04 混合モード):

"RMI TCP Connection(17)-10.162.107.103" デーモン prio=1 tid=0x0000002c094b6600 nid=0x3856 実行可能 [0x000000004499a000..0x000000004499aeb0]
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:129) で
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で
    java.io.BufferedInputStream.read(BufferedInputStream.java:235) で
    - ロックされた (java.io.BufferedInputStream)
    java.io.FilterInputStream.read(FilterInputStream.java:66) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:448) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

"RMI TCP Connection(16)-10.162.107.103" デーモン prio=1 tid=0x0000002c08067990 nid=0x3855 実行可能 [0x0000000044899000..0x0000000044899d30]
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:129) で
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で
    java.io.BufferedInputStream.read(BufferedInputStream.java:235) で
    - ロックされた (java.io.BufferedInputStream)
    java.io.FilterInputStream.read(FilterInputStream.java:66) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:448) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

"RMI TCP Connection(13)-10.162.107.103" デーモン prio=1 tid=0x0000002c080680d0 nid=0x3594 実行可能 [0x0000000044596000..0x0000000044596b30]
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:129) で
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で
    java.io.BufferedInputStream.read(BufferedInputStream.java:235) で
    - ロックされた (java.io.BufferedInputStream)
    java.io.FilterInputStream.read(FilterInputStream.java:66) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:448) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

「JMX サーバー接続タイムアウト 86」デーモン prio=1 tid=0x0000002c08a9f000 nid=0x34c8 in Object.wait() [0x0000000044394000..0x0000000044394e30]
    at java.lang.Object.wait(ネイティブメソッド)
    -待っている(a [I)
    com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150) で
    - ロックされた (a [I)
    java.lang.Thread.run(Thread.java:595) で

"RMI TCP Connection(11)-10.162.107.103" デーモン prio=1 tid=0x0000002c096a6d80 nid=0x34c6 in Object.wait() [0x0000000044191000..0x0000000044192eb0]
    at java.lang.Object.wait(ネイティブメソッド)
    - 待機中 (com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications (ArrayNotificationBuffer.java:344) で
    - ロック済み (com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:122) で
    com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:169)
    javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications (RMIConnectionImpl.java:1215) で
    sun.reflect.GeneratedMethodAccessor221.invoke (不明なソース) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で
    java.lang.reflect.Method.invoke(Method.java:585) で
    sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) で
    sun.rmi.transport.Transport$1.run(Transport.java:153) で
    java.security.AccessController.doPrivileged(ネイティブメソッド)で
    sun.rmi.transport.Transport.serviceCall(Transport.java:149) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:466) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

"RMI TCP Connection(10)-10.162.107.103" デーモン prio=1 tid=0x0000002c084513b0 nid=0x3067 実行可能 [0x0000000043c8d000..0x0000000043c8dd30]
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:129) で
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で
    java.io.BufferedInputStream.read(BufferedInputStream.java:235) で
    - ロックされた (java.io.BufferedInputStream)
    java.io.FilterInputStream.read(FilterInputStream.java:66) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:448) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

"RMI TCP Connection(8)-10.162.107.103" デーモン prio=1 tid=0x0000002c07f7f980 nid=0x2acd 実行可能 [0x0000000044293000..0x0000000044293c30]
    java.net.SocketInputStream.socketRead0 (ネイティブ メソッド) で
    java.net.SocketInputStream.read(SocketInputStream.java:129) で
    java.io.BufferedInputStream.fill(BufferedInputStream.java:218) で
    java.io.BufferedInputStream.read(BufferedInputStream.java:235) で
    - ロックされた (java.io.BufferedInputStream)
    java.io.FilterInputStream.read(FilterInputStream.java:66) で
    sun.rmi.transport.tcp.TCPTransport.handleMessages (TCPTransport.java:448) で
    sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707) で
    java.lang.Thread.run(Thread.java:595) で

「RMI LeaseChecker」デーモン prio=1 tid=0x0000002c080f6990 nid=0x264c 条件 [0x0000000043d8e000..0x0000000043d8ecb0] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:310) で
    java.lang.Thread.run(Thread.java:595) で

「OracleTimeoutPollingThread」デーモン prio=1 tid=0x0000002c08b70320 nid=0x9ae 条件 [0x0000000043b8c000..0x0000000043b8cbb0] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)で

"ProcessActivities_29 スレッド" prio=1 tid=0x0000002c06961d50 nid=0x8e4 モニター エントリを待機中 [0x0000000043a8b000..0x0000000043a8be30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_28 スレッド" prio=1 tid=0x0000002c06960930 nid=0x8e3 モニター エントリを待機中 [0x000000004398a000..0x000000004398aeb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_27 スレッド" prio=1 tid=0x0000002c0695f4e0 nid=0x8e2 モニター エントリを待機中 [0x0000000043889000..0x0000000043889d30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_26 スレッド" prio=1 tid=0x0000002c0695e4a0 nid=0x8e1 モニター エントリを待機中 [0x0000000043788000..0x0000000043788db0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_25 スレッド" prio=1 tid=0x0000002c05e745c0 nid=0x8e0 モニター エントリを待機中 [0x0000000043687000..0x0000000043687c30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_24 スレッド" prio=1 tid=0x0000002c05e73490 nid=0x8df モニター エントリを待機中 [0x0000000043586000..0x0000000043586cb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_23 スレッド" prio=1 tid=0x0000002c05e71db0 nid=0x8de モニター エントリを待機中 [0x0000000043485000..0x0000000043485b30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_22 スレッド" prio=1 tid=0x0000002c05e70990 nid=0x8dd モニター エントリを待機中 [0x0000000043384000..0x0000000043384bb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_21 スレッド" prio=1 tid=0x0000002c05e6f540 nid=0x8dc モニター エントリを待機中 [0x0000000043283000..0x0000000043283e30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_20 スレッド" prio=1 tid=0x0000002c05e6e410 nid=0x8db モニター エントリを待機中 [0x0000000043182000..0x0000000043182eb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_19 スレッド" prio=1 tid=0x0000002c05ee7a90 nid=0x8da モニター エントリを待機中 [0x0000000043081000..0x0000000043081d30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_18 スレッド" prio=1 tid=0x0000002c05ee6960 nid=0x8d9 モニター エントリを待機中 [0x0000000042f80000..0x0000000042f80db0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_17 スレッド" prio=1 tid=0x0000002c05ee5280 nid=0x8d8 モニター エントリを待機中 [0x0000000042e7f000..0x0000000042e7fc30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_16 スレッド" prio=1 tid=0x0000002c05ee3e60 nid=0x8d7 モニター エントリを待機中 [0x0000000042d7e000..0x0000000042d7ecb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_15 スレッド" prio=1 tid=0x0000002c05ee2a10 nid=0x8d6 モニター エントリを待機中 [0x0000000042c7d000..0x0000000042c7db30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_14 スレッド" prio=1 tid=0x0000002c05ee19f0 nid=0x8d5 モニター エントリを待機中 [0x0000000042b7c000..0x0000000042b7cbb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_13 スレッド" prio=1 tid=0x0000002c0a55c820 nid=0x8d4 モニター エントリを待機中 [0x0000000042a7b000..0x0000000042a7be30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_12 スレッド" prio=1 tid=0x0000002c0a55b6f0 nid=0x8d3 モニター エントリを待機中 [0x000000004297a000..0x000000004297aeb0]
    com.conceptwave.process.CwpActivityPriorityQueue.putInQueue (CwpActivityPriorityQueue.java:55) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpProcessManager.putInActivityQueue (CwpProcessManager.java:1343) で
    com.conceptwave.process.CwpPEContext.commitMemoryTransaction (CwpPEContext.java:99) で
    com.conceptwave.process.CwpThread.commitPETransaction (CwpThread.java:90) で
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:466) で

"ProcessActivities_11 スレッド" prio=1 tid=0x0000002c0a55a010 nid=0x8d2 モニター エントリを待機中 [0x0000000042879000..0x0000000042879d30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_10 スレッド" prio=1 tid=0x0000002c0a558bf0 nid=0x8d1 モニター エントリを待機中 [0x000000004278000..0x0000000042778db0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_09 スレッド" prio=1 tid=0x0000002c0a5577a0 nid=0x8d0 モニター エントリを待機中 [0x0000000042677000..0x0000000042677c30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_08 スレッド" prio=1 tid=0x0000002c083ffb80 nid=0x8cf モニター エントリを待機中 [0x0000000042576000..0x0000000042576cb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_07 スレッド" prio=1 tid=0x0000002c083fe470 nid=0x8ce モニター エントリを待機中 [0x0000000042475000..0x0000000042475b30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_06 スレッド" prio=1 tid=0x0000002c083fd340 nid=0x8cd 実行可能 [0x0000000042374000..0x0000000042374bb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:231) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_05 スレッド" prio=1 tid=0x0000002c083fbc60 nid=0x8cc モニター エントリを待機中 [0x0000000042273000..0x0000000042273e30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_04 スレッド" prio=1 tid=0x0000002c083fa840 nid=0x8cb モニター エントリを待機中 [0x0000000042172000..0x0000000042172eb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_03 スレッド" prio=1 tid=0x0000002c087bcb90 nid=0x8ca 実行可能 [0x0000000042071000..0x0000000042071d30]
    com.conceptwave.process.CwpActivityInfoCache.checkForActivity (CwpActivityInfoCache.java:159) で
    com.conceptwave.process.CwpActivityInfoCache.getExistingActivity (CwpActivityInfoCache.java:190) で
    com.conceptwave.process.CwpProcess.getActivityIfExists (CwpProcess.java:2200) で
    com.conceptwave.process.CwpProcess.isRunning (CwpProcess.java:1984) で
    com.conceptwave.process.CwpActivityQueueThread.startPendingException (CwpActivityQueueThread.java:787) で
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:405) で

"ProcessActivities_02 スレッド" prio=1 tid=0x0000002c087bb770 nid=0x8c9 モニター エントリを待機中 [0x0000000041f70000..0x0000000041f70db0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_01 スレッド" prio=1 tid=0x0000002c08a6dc30 nid=0x8c8 モニター エントリを待機中 [0x0000000041e6f000..0x0000000041e6fc30]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"ProcessActivities_00 スレッド" prio=1 tid=0x0000002c08d15a50 nid=0x8c7 モニター エントリを待機中 [0x0000000041d6e000..0x0000000041d6ecb0]
    com.conceptwave.process.CwpActivityQueueThread.run (CwpActivityQueueThread.java:490) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)

"参加者キュー" prio=1 tid=0x0000002c0a9b5330 nid=0x8c6 モニター エントリを待機中 [0x0000000041c6d000..0x0000000041c6db30]
    com.conceptwave.process.CwpActivityPriorityQueue.putInQueue (CwpActivityPriorityQueue.java:55) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpProcessManager.putInActivityQueue (CwpProcessManager.java:1343) で
    com.conceptwave.process.CwpPar​​ticipantsThread.processMatchedActivity (CwpPar​​ticipantsThread.java:436) で
    com.conceptwave.process.CwpPar​​ticipantsThread.processWaitingQueue (CwpPar​​ticipantsThread.java:367) で
    com.conceptwave.process.CwpPar​​ticipantsThread.run (CwpPar​​ticipantsThread.java:248) で
    - ロック済み (com.conceptwave.process.CwpPar​​ticipantsThread)

"GlobalRequests キュー" prio=1 tid=0x0000002c067cecf0 nid=0x8c5 モニター エントリを待機中 [0x0000000041b6c000..0x0000000041b6cbb0]
    com.conceptwave.process.CwpActivityPriorityQueue.putInQueue (CwpActivityPriorityQueue.java:55) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpProcessManager.putInActivityQueue (CwpProcessManager.java:1343) で
    com.conceptwave.process.CwpGlobalRequestsThread.processRequest (CwpGlobalRequestsThread.java:323) で
    com.conceptwave.process.CwpGlobalRequestsThread.run (CwpGlobalRequestsThread.java:175) で

「TaskDistribution Queue」 prio=1 tid=0x0000002c096a7e40 nid=0x8c4 条件 [0x0000000041a6b000..0x0000000041a6be30] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    com.conceptwave.system.CwfBaseThread.waitForInterval (CwfBaseThread.java:144) で
    com.conceptwave.process.CwpIncrementalWaitThread.waitCurrently (CwpIncrementalWaitThread.java:173) で
    com.conceptwave.process.CwpTaskDistributionThread.run (CwpTaskDistributionThread.java:22) で

"StartRestart Queue" prio=1 tid=0x0000002c09696c10 nid=0x8c3 モニター エントリを待機中 [0x000000004196a000..0x000000004196aeb0]
    com.conceptwave.process.CwpActivityPriorityQueue.putInQueue (CwpActivityPriorityQueue.java:55) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpStartProcessesThread.restartTheProcessList (CwpStartProcessesThread.java:181) で
    com.conceptwave.process.CwpStartProcessesThread.run (CwpStartProcessesThread.java:87) で

"GlobalProcesses キュー" prio=1 tid=0x0000002c08c87990 nid=0x8c2 モニター エントリを待機中 [0x0000000041869000..0x0000000041869d30]
    com.conceptwave.process.CwpActivityPriorityQueue.putInQueue (CwpActivityPriorityQueue.java:55) で
    - ロック待ち (com.conceptwave.process.CwpActivityQueue)
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpGlobalProcessThread.enqueueCheckCommand (CwpGlobalProcessThread.java:199) で
    com.conceptwave.process.CwpGlobalProcessThread.run (CwpGlobalProcessThread.java:126) で

"SocketListener" prio=1 tid=0x0000002c061cfc50 nid=0x8a8 モニター エントリを待機中 [0x0000000041767000..0x0000000041768d30]
    com.conceptwave.process.CwpPar​​ticipantsThread.getDBCacheData (CwpPar​​ticipantsThread.java:450) で
    - ロック待ち (com.conceptwave.process.CwpPar​​ticipantsThread)
    com.conceptwave.process.CwpProcess.getParticipantsQueueData (CwpProcess.java:1700) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) で
    java.lang.reflect.Method.invoke(Method.java:585) で
    com.conceptwave.javascript.CwfScriptFunctionObject.call (CwfScriptFunctionObject.java:368) で
    org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76) で
    org.mozilla.javascript.gen.c1422._c2( (com.conceptwave.process.CwpActivityQueue) で
    com.conceptwave.process.CwpActivityQueue.enqueue (CwpActivityQueue.java:71) で
    com.conceptwave.process.CwpProcessManager.putInActivityQueue (CwpProcessManager.java:1343) で
    com.conceptwave.process.CwpDelayedActivitiesThread.run (CwpDelayedActivitiesThread.java:271) で

「ハートビート」prio=1 tid=0x0000002c0c84ff90 nid=0x8a6 条件 [0x0000000041465000..0x0000000041465c30] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    com.conceptwave.system.CwfBaseThread.waitForInterval (CwfBaseThread.java:144) で
    com.conceptwave.system.CwfAVMHeartBeat.run (CwfAVMHeartBeat.java:288) で

"ClockThread" prio=1 tid=0x0000002c09dc2a20 nid=0x8a5 条件 [0x0000000041566000..0x0000000041566cb0] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    com.conceptwave.system.CwfBaseThread.waitForInterval (CwfBaseThread.java:144) で
    com.conceptwave.system.CwfClockThread.run (CwfClockThread.java:32) で

「スレッド 5」デーモン prio=1 tid=0x0000002c07eec270 nid=0x706 条件 [0x0000000041364000..0x0000000041364cb0] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)で

「スレッド 4」デーモン prio=1 tid=0x0000002c088ecde0 nid=0x705 条件 [0x0000000041263000..0x0000000041263b30] で待機中
    java.lang.Thread.sleep(ネイティブメソッド)で
    oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)で

「RMI TCP Accept-10001」デーモン prio=1 tid=0x0000002c07e7c730 nid=0x6c6 実行可能 [0x0000000041061000..0x0000000041061eb0]
    java.net.PlainSocketImpl.socketAccept (ネイティブ メソッド) で
    java.net.PlainSocketImpl.accept (PlainSocketImpl.java:384) で
    - ロックされた (java.net.SocksSocketImpl)
    java.net.ServerSocket.implAccept (ServerSocket.java:450) で
    java.net.ServerSocket.accept (ServerSocket.java:421) で
    sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340) で
    java.lang.Thread.run(Thread.java:595) で

「RMI TCP Accept-0」デーモン prio=1 tid=0x0000002c07e78c70 nid=0x6c5 実行可能 [0x0000000040f60000..0x0000000040f60d30]
    java.net.PlainSocketImpl.socketAccept (ネイティブ メソッド) で
    java.net.PlainSocketImpl.accept (PlainSocketImpl.java:384) で
    - ロックされた (java.net.SocksSocketImpl)
    java.net.ServerSocket.implAccept (ServerSocket.java:450) で
    java.net.ServerSocket.accept (ServerSocket.java:421) で
    sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340) で
    java.lang.Thread.run(Thread.java:595) で

"Timer-0" デーモン prio=1 tid=0x0000002c061fb720 nid=0x6c4 in Object.wait() [0x0000000040e5f000..0x0000000040e5fdb0]
    at java.lang.Object.wait(ネイティブメソッド)
    - 待機中 (java.util.TaskQueue)
    java.lang.Object.wait(Object.java:474) で
    java.util.TimerThread.mainLoop (Timer.java:483) で
    - ロックされた (java.util.TaskQueue)
    java.util.TimerThread.run (Timer.java:462) で

「Low Memory Detector」デーモン prio=1 tid=0x0000002c02f2ecd0 nid=0x6c3 実行可能 [0x0000000000000000..0x000000000000000]

「CompilerThread1」デーモン prio=1 tid=0x0000002c02f2d0a0 nid=0x6c2 条件 [0x0000000000000000..0x0000000040c5c610] で待機中

"CompilerThread0" デーモン prio=1 tid=0x0000002c02f2baf0 nid=0x6c1 条件 [0x0000000000000000..0x0000000040b5b460] で待機中

「AdapterThread」デーモン prio=1 tid=0x0000002c02f2a390 nid=0x6c0 条件 [0x0000000000000000..0x0000000000000000] で待機中

「シグナルディスパッチャー」デーモン prio=1 tid=0x0000002c02f29030 nid=0x6bf 条件 [0x0000000000000000..0x0000000000000000] で待機中

「ファイナライザー」デーモン prio=1 tid=0x0000002c02f14d60 nid=0x6be in Object.wait() [0x0000000040859000..0x0000000040859eb0]
    at java.lang.Object.wait(ネイティブメソッド)
    - 待機中 (java.lang.ref.ReferenceQueue$Lock)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) で
    - ロックされた (java.lang.ref.ReferenceQueue$Lock)
    java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132) で
    java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) で

「参照ハンドラ」デーモン prio=1 tid=0x0000002c02f14530 nid=0x6bd in Object.wait() [0x0000000040758000..0x0000000040758d30]
    at java.lang.Object.wait(ネイティブメソッド)
    - 待機中 (java.lang.ref.Reference$Lock)
    java.lang.Object.wait(Object.java:474) で
    java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) で
    - ロック (java.lang.ref.Reference$Lock)

"main" prio=1 tid=0x00000000401164d0 nid=0x6b6 in Object.wait() [0x0000007fbfffc000..0x0000007fbfffd080]
    at java.lang.Object.wait(ネイティブメソッド)
    - 待機中 (java.lang.Class)
    java.lang.Object.wait(Object.java:474) で
    com.conceptwave.process.CwpProcessManager.main (CwpProcessManager.java:397) で
    - ロックされた (java.lang.Class)

「VM スレッド」prio=1 tid=0x0000002c02f10060 nid=0x6bc 実行可能

「GC タスク スレッド #0 (ParallelGC)」 prio=1 tid=0x0000000040133d50 nid=0x6b7 実行可能

「GCタスクスレッド#1 (ParallelGC)」 prio=1 tid=0x0000000040134bd0 nid=0x6b8 runnable

「GCタスクスレッド#2 (ParallelGC)」 prio=1 tid=0x0000000040135a50 nid=0x6b9 runnable

「GCタスクスレッド#3 (ParallelGC)」 prio=1 tid=0x00000000401368d0 nid=0x6ba runnable

「VM 定期タスク スレッド」 prio=1 tid=0x0000002c07e87830 nid=0x6c7 条件待ち
4

1 に答える 1

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)

次に、機能しているように見えるスレッドが1つあります。

"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が自動的にシャットダウンすることはありません。

于 2011-11-07T23:02:50.640 に答える