web-dev-qa-db-ja.com

Javaスレッドスタックを解釈する方法は?

この質問に沿って: スレッドのスタックトレースを取得する方法

jstackで抽出されたJavaスレッドスタック)の解釈に関する情報を誰かが指摘できるかどうか疑問に思っています。

私の状況では、GlassFishv2.1.1で実行されているJava EE 5アプリケーションが定期的に(少なくとも1日に2〜3回)ハングします)。再度実行するには、次のことを行う必要があります。 Glassfishプロセスを強制終了し、ドメインを再起動します。アプリケーションは通常、最終的に完全にハングするまで応答が遅くなります。ハングすると、スレッドスタックを取得できません。取得したスレッドスタックを取得できました。だんだん遅くなりますが、問題やハングしたスレッドを見つけることができません。

最新のスレッドダンプは次のとおりです。 http://issues.i2m.dk/attachments/66/threadstack.201103211046.txt

スレッドダンプのスニペット:

"p: thread-pool-1; w: 20" daemon prio=10 tid=0x00007efd18843800 nid=0x5f89 in Object.wait() [0x00007efd03381000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"TP-Processor83" daemon prio=10 tid=0x0000000043179000 nid=0x5f87 runnable [0x00007efd03583000]
   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.read1(BufferedInputStream.Java:258)
    at Java.io.BufferedInputStream.read(BufferedInputStream.Java:317)
    - locked <0x00007efe72696090> (a Java.io.BufferedInputStream)
    at org.Apache.jk.common.ChannelSocket.read(ChannelSocket.Java:607)
    at org.Apache.jk.common.ChannelSocket.receive(ChannelSocket.Java:545)
    at org.Apache.jk.common.ChannelSocket.processConnection(ChannelSocket.Java:672)
    at org.Apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.Java:876)
    at org.Apache.Tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.Java:684)
    at Java.lang.Thread.run(Thread.Java:662)

"p: thread-pool-1; w: 19" daemon prio=10 tid=0x00007efd18710800 nid=0x5f86 in Object.wait() [0x00007efd03684000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"p: thread-pool-1; w: 18" daemon prio=10 tid=0x0000000042a5a000 nid=0x5f85 in Object.wait() [0x00007efd03785000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"p: thread-pool-1; w: 17" daemon prio=10 tid=0x0000000042a57000 nid=0x5f84 in Object.wait() [0x00007efd03886000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"p: thread-pool-1; w: 16" daemon prio=10 tid=0x000000004321b000 nid=0x5f83 in Object.wait() [0x00007efd03987000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"p: thread-pool-1; w: 15" daemon prio=10 tid=0x0000000043219800 nid=0x5f82 in Object.wait() [0x00007efd03a88000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"p: thread-pool-1; w: 14" daemon prio=10 tid=0x00000000429b6000 nid=0x5f81 in Object.wait() [0x00007efd03b89000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.Java:171)
    - locked <0x00007efd480fc228> (a com.Sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl)
    at com.Sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.Java:528)

"TP-Processor82" daemon prio=10 tid=0x0000000043896800 nid=0x5f80 runnable [0x00007efd03c8a000]
   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.read1(BufferedInputStream.Java:258)
    at Java.io.BufferedInputStream.read(BufferedInputStream.Java:317)
    - locked <0x00007efe72829510> (a Java.io.BufferedInputStream)
    at org.Apache.jk.common.ChannelSocket.read(ChannelSocket.Java:607)
    at org.Apache.jk.common.ChannelSocket.receive(ChannelSocket.Java:545)
    at org.Apache.jk.common.ChannelSocket.processConnection(ChannelSocket.Java:672)
    at org.Apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.Java:876)
    at org.Apache.Tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.Java:684)
    at Java.lang.Thread.run(Thread.Java:662)

"Thread-44980" daemon prio=10 tid=0x00007efd202c3800 nid=0x5d74 runnable [0x00007efd067b5000]
   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.read1(BufferedInputStream.Java:258)
    at Java.io.BufferedInputStream.read(BufferedInputStream.Java:317)
    - locked <0x00007efd78fc0058> (a Java.io.BufferedInputStream)
    at com.Sun.jndi.ldap.Connection.run(Connection.Java:808)
    at Java.lang.Thread.run(Thread.Java:662)

"Thread-44979" daemon prio=10 tid=0x00007efd20d76000 nid=0x5d73 runnable [0x00007efd062b0000]
   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.read1(BufferedInputStream.Java:258)
    at Java.io.BufferedInputStream.read(BufferedInputStream.Java:317)
    - locked <0x00007efd7789a4e0> (a Java.io.BufferedInputStream)
    at com.Sun.jndi.ldap.Connection.run(Connection.Java:808)
    at Java.lang.Thread.run(Thread.Java:662)

"TP-Monitor" daemon prio=10 tid=0x00007efd2139f800 nid=0x5b1 in Object.wait() [0x00007efd0d453000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4d46d6c0> (a org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable)
    at org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.Java:561)
    - locked <0x00007efd4d46d6c0> (a org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable)
    at Java.lang.Thread.run(Thread.Java:662)

"TP-Monitor" daemon prio=10 tid=0x00007efd20143000 nid=0x5b0 in Object.wait() [0x00007efd0d554000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4d96dcd8> (a org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable)
    at org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.Java:561)
    - locked <0x00007efd4d96dcd8> (a org.Apache.Tomcat.util.threads.ThreadPool$MonitorRunnable)
    at Java.lang.Thread.run(Thread.Java:662)

"httpWorkerThread-4848-48" daemon prio=10 tid=0x00007efd18a82800 nid=0x5aa in Object.wait() [0x00007efd0db5a000]
   Java.lang.Thread.State: WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4d09a620> (a com.Sun.enterprise.web.connector.grizzly.LinkedListPipeline)
    at Java.lang.Object.wait(Object.Java:485)
    at com.Sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.Java:304)
    - locked <0x00007efd4d09a620> (a com.Sun.enterprise.web.connector.grizzly.LinkedListPipeline)
    at com.Sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.Java:120)


"GrizzlyPipelineStatWorkerThread-4848-2" daemon prio=10 tid=0x00007efd20033000 nid=0x579 waiting on condition [0x00007efd10c8b000]
   Java.lang.Thread.State: TIMED_WAITING (parking)
    at Sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00007efd4d098f30> (a Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at Java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.Java:198)
    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 com.Sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.Java:113)

"GrizzlyPipelineStatWorkerThread-4848-1" daemon prio=10 tid=0x00007efd2124f000 nid=0x578 waiting on condition [0x00007efd10d8c000]
   Java.lang.Thread.State: TIMED_WAITING (parking)
    at Sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00007efd4d098f30> (a Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at Java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.Java:198)
    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 com.Sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.Java:113)

"httpSSLWorkerThread-8181-48" daemon prio=10 tid=0x0000000042041800 nid=0x575 in Object.wait() [0x00007efd1108f000]
   Java.lang.Thread.State: WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4d0c8308> (a com.Sun.enterprise.web.connector.grizzly.ssl.SSLPipeline)
    at Java.lang.Object.wait(Object.Java:485)
    at com.Sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.Java:304)
    - locked <0x00007efd4d0c8308> (a com.Sun.enterprise.web.connector.grizzly.ssl.SSLPipeline)
    at com.Sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.Java:109)


"SelectorThread-4848" prio=10 tid=0x00007efd207ba800 nid=0x546 runnable [0x00007efd13fbe000]
   Java.lang.Thread.State: RUNNABLE
    at Sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at Sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.Java:210)
    at Sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.Java:65)
    at Sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.Java:69)
    - locked <0x00007efd4d9c24c0> (a Sun.nio.ch.Util$1)
    - locked <0x00007efd4d9c24a8> (a Java.util.Collections$UnmodifiableSet)
    - locked <0x00007efd4d9c1d58> (a Sun.nio.ch.EPollSelectorImpl)
    at Sun.nio.ch.SelectorImpl.select(SelectorImpl.Java:80)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.Java:1421)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.Java:1336)
    - locked <0x00007efd4d9c27c0> (a [Ljava.lang.Object;)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.Java:1299)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.Java:1275)


"httpSSLWorkerThread-8080-49" daemon prio=10 tid=0x00007efd20bfc800 nid=0x541 in Object.wait() [0x00007efd144c3000]
   Java.lang.Thread.State: WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4d0f97a8> (a com.Sun.enterprise.web.portunif.PortUnificationPipeline)
    at Java.lang.Object.wait(Object.Java:485)
    at com.Sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.Java:304)
    - locked <0x00007efd4d0f97a8> (a com.Sun.enterprise.web.portunif.PortUnificationPipeline)
    at com.Sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.Java:109)


"SelectorThread-8181" prio=10 tid=0x00007efd2161c000 nid=0x50e runnable [0x00007efd177f6000]
   Java.lang.Thread.State: RUNNABLE
    at Sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at Sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.Java:210)
    at Sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.Java:65)
    at Sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.Java:69)
    - locked <0x00007efd4d3a6800> (a Sun.nio.ch.Util$1)
    - locked <0x00007efd4d3a67e8> (a Java.util.Collections$UnmodifiableSet)
    - locked <0x00007efd4d3a6098> (a Sun.nio.ch.EPollSelectorImpl)
    at Sun.nio.ch.SelectorImpl.select(SelectorImpl.Java:80)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.Java:1421)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.Java:1336)
    - locked <0x00007efd4d3a6b00> (a [Ljava.lang.Object;)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.Java:1299)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.Java:1275)

"GrizzlyPipelineStatWorkerThread-8080-1" daemon prio=10 tid=0x00007efd20f4c800 nid=0x50a waiting on condition [0x00007efd17bfa000]
   Java.lang.Thread.State: TIMED_WAITING (parking)
    at Sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00007efd4d120680> (a Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at Java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.Java:198)
    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 com.Sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.Java:113)

"GrizzlyPipelineStatWorkerThread-8080-0" daemon prio=10 tid=0x00007efd20966800 nid=0x509 waiting on condition [0x00007efd17cfb000]
   Java.lang.Thread.State: TIMED_WAITING (parking)
    at Sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00007efd4d120680> (a Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at Java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.Java:198)
    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 com.Sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.Java:113)

"SelectorThread-8080" prio=10 tid=0x00007efd201a0800 nid=0x508 runnable [0x00007efd17dfc000]
   Java.lang.Thread.State: RUNNABLE
    at Sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at Sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.Java:210)
    at Sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.Java:65)
    at Sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.Java:69)
    - locked <0x00007efd4dc827a0> (a Sun.nio.ch.Util$1)
    - locked <0x00007efd4dc82788> (a Java.util.Collections$UnmodifiableSet)
    - locked <0x00007efd4dc82088> (a Sun.nio.ch.EPollSelectorImpl)
    at Sun.nio.ch.SelectorImpl.select(SelectorImpl.Java:80)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.Java:1421)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.Java:1336)
    - locked <0x00007efd4dc82aa0> (a [Ljava.lang.Object;)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.Java:1299)
    at com.Sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.Java:1275)

"ContainerBackgroundProcessor[StandardEngine[com.Sun.appserv]]" daemon prio=10 tid=0x00007efd207af800 nid=0x503 waiting on condition [0x00007efd1c76c000]
   Java.lang.Thread.State: TIMED_WAITING (sleeping)
    at Java.lang.Thread.sleep(Native Method)
    at org.Apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.Java:1813)
    at Java.lang.Thread.run(Thread.Java:662)


"Timer-13" daemon prio=10 tid=0x00007efd202d2800 nid=0x4fe in Object.wait() [0x00007efd1c96e000]
   Java.lang.Thread.State: WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4ab21998> (a Java.util.TaskQueue)
    at Java.lang.Object.wait(Object.Java:485)
    at Java.util.TimerThread.mainLoop(Timer.Java:483)
    - locked <0x00007efd4ab21998> (a Java.util.TaskQueue)
    at Java.util.TimerThread.run(Timer.Java:462)

"Timer-9" daemon prio=10 tid=0x00007efd209ad000 nid=0x4f9 in Object.wait() [0x00007efd1d7d1000]
   Java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at Java.lang.Object.wait(Native Method)
    - waiting on <0x00007efd4a82c750> (a Java.util.TaskQueue)
    at Java.util.TimerThread.mainLoop(Timer.Java:509)
    - locked <0x00007efd4a82c750> (a Java.util.TaskQueue)
    at Java.util.TimerThread.run(Timer.Java:462)

"Thread-11" daemon prio=10 tid=0x00007efd183f6800 nid=0x4c0 waiting on condition [0x00007efd1efe7000]
   Java.lang.Thread.State: WAITING (parking)
    at Sun.misc.Unsafe.park(Native Method)
    - parking to wait for  <0x00007efd48273738> (a Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at Java.util.concurrent.locks.LockSupport.park(LockSupport.Java:158)
    at Java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.Java:1987)
    at Java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.Java:399)
    at com.Sun.enterprise.management.support.LoaderRegThread.processFOREVER(LoaderRegThread.Java:263)
    at com.Sun.enterprise.management.support.LoaderRegThread.run(LoaderRegThread.Java:311)


"SelectorThread" daemon prio=10 tid=0x00007efd183ff800 nid=0x4ba runnable [0x00007efd1f5ed000]
   Java.lang.Thread.State: RUNNABLE
    at Sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at Sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.Java:210)
    at Sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.Java:65)
    at Sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.Java:69)
    - locked <0x00007efd48171e70> (a Sun.nio.ch.Util$1)
    - locked <0x00007efd48171e58> (a Java.util.Collections$UnmodifiableSet)
    - locked <0x00007efd48171a98> (a Sun.nio.ch.EPollSelectorImpl)
    at Sun.nio.ch.SelectorImpl.select(SelectorImpl.Java:80)
    at com.Sun.corba.ee.impl.transport.SelectorImpl.run(SelectorImpl.Java:283)

将来問題を診断できるように、ダンプの解釈に関する一般的な情報を探しています。ありがとう。

あなたを助けるかもしれないいくつかのこと

  • さまざまな スレッドの状態 BLOCKED、WAITINGなどのように説明されています。
  • Javaはデッドロックを検出し、 Detecting Java Thread Deadlocks with'jstack ' で説明されているような出力が表示されます。
  • あなたはおそらく ライブロック を持っています。ここでは、システムに関する情報と、ダンプとソースコードを確認する必要があります。

現在の問題をどのように進めるか?

  • このダンプに基づいて、複数のスレッドからロックされて待機しているオブジェクトがいくつかあることがわかります。文字列「-待機中」および「-ロック済み」を探します。私はあなたのアプリのロジックを知りません。
10
toomasr

スレッドダンプから:

Java.lang.Thread.State: RUNNABLE
    at Sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
    at Sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.Java:210)
    at Sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.Java:65)

セレクターが回転しているJDKでよく知られているBUGがあるようです。

2
danidacila