Как интерпретировать этот дамп потока?

1

У меня есть приложение, работающее на Linux-сервере. Вот некоторые сведения о приложении
1. Он основывается на весне 3, кварце 1.6.1 и httpclient 4.1.2 для разбора страниц.
2. В основном его рабочие места будут выполняться 1 или 12 раз за один час (большинство из них один раз в час).
3. Все их одновременное использование значения по умолчанию.
Моя проблема в том, что работа перестает запускаться изредка. Эта проблема произошла дважды в прошлом месяце. Когда в прошлый раз проблема поднялась, я сделал следующее:
1. Проверьте ход выполнения и журналы. Прогресс все еще был жив. Но все бизнес-журналы перестали писать в течение долгого времени.
2. Проверял журнал gc, и все казалось правильным.
3. Экспортированный поток дампов этого прогресса с jstack.
Хотя я получаю дамп потока, я не знаю, как его интерпретировать. Может кто-нибудь, пожалуйста, помогите мне с этим?
С наилучшими пожеланиями

Вот цельное содержание дампа потока:

    2014-07-27 23:09:13
Full thread dump Java HotSpot(TM) 64-Bit Server VM (20.6-b01 mixed mode):

"Attach Listener" daemon prio=10 tid=0x000000005a9ba000 nid=0x5426 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"RMI TCP Connection(idle)" daemon prio=10 tid=0x000000005ca59000 nid=0x5215 waiting on condition [0x0000000041efe000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000ec44c338> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Multicast keep-alive Heartbeat Receiver thread-1414" daemon prio=10 tid=0x00002aaab9144800 nid=0x36f5 waiting on condition [0x0000000041c97000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000ec43fbf0> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Multicast keep-alive Heartbeat Receiver thread-1412" daemon prio=10 tid=0x00002aaab80fd800 nid=0x23e2 waiting on condition [0x00000000407e7000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000ec43fbf0> (a java.util.concurrent.SynchronousQueue$TransferStack)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)
    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)
    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:945)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:47662,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005b505000 nid=0x639a in Object.wait() [0x0000000040e83000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ed259310> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:41251,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005b05d800 nid=0x3e97 in Object.wait() [0x0000000041f82000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec73c7c0> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:39067,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005a851000 nid=0x3d7b in Object.wait() [0x0000000041241000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000ec43fc08> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec43fc08> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:33990,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005c657800 nid=0x3d79 in Object.wait() [0x0000000041cb8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec43fab8> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:29600,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005c977800 nid=0x3d74 in Object.wait() [0x0000000041c76000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec43fae8> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI Reaper" prio=10 tid=0x000000005c975000 nid=0x3d72 in Object.wait() [0x0000000041c55000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000ec43fb18> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec43fb18> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"GC Daemon" daemon prio=10 tid=0x000000005c974000 nid=0x3d71 in Object.wait() [0x0000000041932000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at sun.misc.GC$Daemon.run(GC.java:100)
    - locked <0x00000000ec43fb48> (a sun.misc.GC$LatencyLock)

   Locked ownable synchronizers:
    - None

"RMI RenewClean-[127.0.0.1:41727,net.sf.ehcache.distribution.ConfigurableRMIClientSocketFactory@1d4c0]" daemon prio=10 tid=0x000000005c783800 nid=0x3d70 in Object.wait() [0x000000004181f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec43fbc0> (a java.lang.ref.ReferenceQueue$Lock)
    at sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" daemon prio=10 tid=0x000000005c783000 nid=0x3d6f waiting on condition [0x000000004172d000]
   java.lang.Thread.State: TIMED_WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000ec43fb90> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:196)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025)
    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI TCP Accept-0" daemon prio=10 tid=0x000000005bb04800 nid=0x3d6e runnable [0x000000004170c000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
    - locked <0x00000000ec3a4f50> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:462)
    at java.net.ServerSocket.accept(ServerSocket.java:430)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Replication Thread" daemon prio=10 tid=0x000000005bb07800 nid=0x3d6a waiting on condition [0x0000000041f61000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.replicationThreadMain(RMIAsynchronousCacheReplicator.java:108)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.access$100(RMIAsynchronousCacheReplicator.java:56)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator$ReplicationThread.run(RMIAsynchronousCacheReplicator.java:376)

   Locked ownable synchronizers:
    - None

"Replication Thread" daemon prio=10 tid=0x000000005c353800 nid=0x3d69 sleeping[0x0000000041f40000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
    at java.lang.Thread.sleep(Native Method)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.replicationThreadMain(RMIAsynchronousCacheReplicator.java:108)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator.access$100(RMIAsynchronousCacheReplicator.java:56)
    at net.sf.ehcache.distribution.RMIAsynchronousCacheReplicator$ReplicationThread.run(RMIAsynchronousCacheReplicator.java:376)

   Locked ownable synchronizers:
    - None

"net.sf.ehcache.CacheManager@4856d149" daemon prio=10 tid=0x000000005a86c800 nid=0x3d4a in Object.wait() [0x0000000041754000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.util.TimerThread.mainLoop(Timer.java:509)
    - locked <0x00000000ec440280> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:462)

   Locked ownable synchronizers:
    - None

"RMI TCP Accept-38303" daemon prio=10 tid=0x000000005b7ca000 nid=0x3d49 runnable [0x0000000041220000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainSocketImpl.socketAccept(Native Method)
    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
    - locked <0x00000000ec3a5130> (a java.net.SocksSocketImpl)
    at java.net.ServerSocket.implAccept(ServerSocket.java:462)
    at java.net.ServerSocket.accept(ServerSocket.java:430)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)
    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Multicast Heartbeat Sender Thread" daemon prio=10 tid=0x000000005b4f2800 nid=0x3d48 in Object.wait() [0x00000000419b0000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatSender$MulticastServerThread.run(MulticastKeepaliveHeartbeatSender.java:146)
    - locked <0x00000000ec440c38> (a net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatSender$MulticastServerThread)

   Locked ownable synchronizers:
    - None

"Multicast Heartbeat Receiver Thread" daemon prio=10 tid=0x000000005c2b7000 nid=0x3d47 runnable [0x000000004198f000]
   java.lang.Thread.State: RUNNABLE
    at java.net.PlainDatagramSocketImpl.receive0(Native Method)
    - locked <0x00000000ec43b278> (a java.net.PlainDatagramSocketImpl)
    at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:145)
    - locked <0x00000000ec43b278> (a java.net.PlainDatagramSocketImpl)
    at java.net.DatagramSocket.receive(DatagramSocket.java:725)
    - locked <0x00000000dd3b7a90> (a java.net.DatagramPacket)
    - locked <0x00000000ec44ebf8> (a java.net.MulticastSocket)
    at net.sf.ehcache.distribution.MulticastKeepaliveHeartbeatReceiver$MulticastReceiverThread.run(MulticastKeepaliveHeartbeatReceiver.java:124)

   Locked ownable synchronizers:
    - None

"MultiThreadedHttpConnectionManager cleanup" daemon prio=10 tid=0x000000005a8d2000 nid=0x3c35 in Object.wait() [0x0000000041481000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000ec3150d8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec3150d8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$ReferenceQueueThread.run(MultiThreadedHttpConnectionManager.java:1122)

   Locked ownable synchronizers:
    - None

"DestroyJavaVM" prio=10 tid=0x000000005a6da000 nid=0x3a42 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"pool-1-thread-1" prio=10 tid=0x000000005aab7000 nid=0x3b1b waiting on condition [0x00000000401bd000]
   java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00000000ec3150f0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)
    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
    at com.teststack.news.se.NewsSearchEngine$1.run(NewsSearchEngine.java:167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - <0x00000000ec32e750> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)

"news_QuartzSchedulerThread" prio=10 tid=0x000000005b17b000 nid=0x3b1a in Object.wait() [0x0000000041b1c000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:296)
    - locked <0x00000000ec315168> (a java.lang.Object)

   Locked ownable synchronizers:
    - None

"news_Worker-10" prio=10 tid=0x000000005b069000 nid=0x3b19 in Object.wait() [0x0000000041afb000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec3180f8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-9" prio=10 tid=0x000000005aced800 nid=0x3b18 in Object.wait() [0x0000000041ada000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec317f78> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-8" prio=10 tid=0x000000005bc75000 nid=0x3b17 in Object.wait() [0x0000000041ab9000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec317ff8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-7" prio=10 tid=0x000000005b0af800 nid=0x3b16 in Object.wait() [0x0000000041a98000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec318078> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-6" prio=10 tid=0x000000005ac90000 nid=0x3b15 in Object.wait() [0x00000000417fe000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec3182f8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-5" prio=10 tid=0x000000005b06f000 nid=0x3b14 in Object.wait() [0x00000000417dd000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec318178> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-4" prio=10 tid=0x000000005aee3000 nid=0x3b13 in Object.wait() [0x00000000417bc000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec3181f8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-3" prio=10 tid=0x000000005a7c4000 nid=0x3b12 in Object.wait() [0x000000004179b000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec318278> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-2" prio=10 tid=0x000000005a806000 nid=0x3b11 in Object.wait() [0x00000000416eb000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec318cf8> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"news_Worker-1" prio=10 tid=0x000000005ae27000 nid=0x3b10 in Object.wait() [0x00000000402dd000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519)
    - locked <0x00000000ec318b78> (a org.quartz.simpl.SimpleThreadPool$WorkerThread)

   Locked ownable synchronizers:
    - None

"Low Memory Detector" daemon prio=10 tid=0x000000005a796000 nid=0x3a4b runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread1" daemon prio=10 tid=0x000000005a794000 nid=0x3a4a waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"C2 CompilerThread0" daemon prio=10 tid=0x000000005a78f000 nid=0x3a49 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Signal Dispatcher" daemon prio=10 tid=0x000000005a78c800 nid=0x3a48 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Surrogate Locker Thread (Concurrent GC)" daemon prio=10 tid=0x000000005a78a800 nid=0x3a47 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

   Locked ownable synchronizers:
    - None

"Finalizer" daemon prio=10 tid=0x000000005a768800 nid=0x3a46 in Object.wait() [0x0000000040cc7000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    - locked <0x00000000ec001680> (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)

   Locked ownable synchronizers:
    - None

"Reference Handler" daemon prio=10 tid=0x000000005a766800 nid=0x3a45 in Object.wait() [0x0000000040ca6000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - locked <0x00000000ec0016c8> (a java.lang.ref.Reference$Lock)

   Locked ownable synchronizers:
    - None

"VM Thread" prio=10 tid=0x000000005a75f800 nid=0x3a44 runnable 

"Concurrent Mark-Sweep GC Thread" prio=10 tid=0x000000005a704800 nid=0x3a43 runnable 
"VM Periodic Task Thread" prio=10 tid=0x000000005a7a1800 nid=0x3a4c waiting on condition 

JNI global references: 1323
  • 0
    Это трассировка стека. Он точно сообщает, какая строка кода, в каких исходных файлах включен каждый из ваших потоков, и как каждый поток туда попал.
  • 0
    Вам нужно сгенерировать этот тип файла, пока бизнес-логика, которую вы хотите настроить, выполняется из вашего приложения, этот файл покажет вам полную трассировку стека для вашей логики, и, скорее всего, вы найдете проблему.
Показать ещё 3 комментария
Теги:
multithreading
jstack

1 ответ

2

Чтобы интерпретировать дамп потока, выполните следующие действия (например, я использую linux).

Step 1) First execute the command ps -fL <PID> where PID is process id for application server.
it will give you all thread which are running under one JVM. You need to check LWD and find out which is running from very long time, just take three or four threads pid.

Step 2) take thread dump , it will dump for all threads even for low priority threads now you need convert hexadecimal value so that you can find out which child threads PID are matching here and then you will come to know which class is creating problem.

Если что-то неясно, обновите. Надеюсь, это поможет вам решить вашу проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню