java.lang.Thread.State:java.lang.Object上的BLOCKED

时间:2013-06-02 17:10:41

标签: java multithreading deadlock

我的应用程序批处理作业挂起,日志中没有任何错误。当作业挂起时,将不会有数据库更新或插入,我也可以同时看到数据库块。系统中没有任何事情发生,一切似乎都停滞不前。查看我在发布时间内完成的完整线程转储。请帮助我理解这是代码问题还是导致批处理作业挂起的任何外部因素。作为临时解决方法,我有时会终止数据库块或重启java包装器服务。多次让用户感到非常沮丧。非常感谢。

2013-05-14 06:29:37
Full thread dump Java HotSpot(TM) 64-Bit Server VM (17.1-b03 mixed mode):

"Thread-35184" - Thread t@70107
   java.lang.Thread.State: TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at com.ocs.util.Timer.run(Unknown Source)
   Locked ownable synchronizers:
    - None

"RMI TCP Connection(5)-153.88.251.56" - Thread t@70104
   java.lang.Thread.State: RUNNABLE
    at sun.management.ThreadImpl.dumpThreads0(Native Method)
    at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)
    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:597)
    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)
    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)
    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)
    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
    at javax.management.StandardMBean.invoke(StandardMBean.java:391)
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
    at sun.reflect.GeneratedMethodAccessor181.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
    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:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@7e8ed1b5

"JMX server connection timeout 70101" - Thread t@70101
   java.lang.Thread.State: TIMED_WAITING on [I@38a76cf2
    at java.lang.Object.wait(Native Method)
    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"RMI Scheduler(0)" - Thread t@70099
   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@77e1a0ec
    at sun.misc.Unsafe.park(Native Method)
    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 java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69553
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@63f916cb

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69549
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@76479cb3

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69545
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@5780e86f

"Batch Lane Thread (JobName - PROCESS_BATCH_UPGRADES QueuePubID - MU)" - Thread t@69541
   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.FutureTask$Sync@4eeaceb6
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227)
    at java.util.concurrent.FutureTask.get(FutureTask.java:91)
    at java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:251)
    at com.ocs.poetic.batch.BatchJobProcess.processEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.processEvent(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@501bfc4a

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU" - Thread t@69431
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at com.inet.tds.w.b(Unknown Source)
    at com.inet.tds.k.d(Unknown Source)
    at com.inet.tds.k.a(Unknown Source)
    at com.inet.tds.k.b(Unknown Source)
    at com.inet.tds.k.a(Unknown Source)
    at com.inet.tds.k.a(Unknown Source)
    at com.inet.tds.af.a(Unknown Source)
    - locked com.inet.tds.an@5d50875c
    at com.inet.tds.u.executeQuery(Unknown Source)
    at com.ocs.framework.transactpersist.sql.PoeticPreparedStatement.executeQuery(Unknown Source)
    at com.ocs.framework.transactpersist.jdbc.JDBCDataAccess.executeStatement(Unknown Source)
    at com.ocs.framework.transactpersist.RelationalEntityPersistence.restoreEntity(Unknown Source)
    at com.ocs.framework.transactpersist.Entity.restore(Unknown Source)
    at com.ocs.framework.transactpersist.Entity.restore(Unknown Source)
    at com.ocs.poetic.activation.UpgradeActivationUtil.updateValidateEntitlementList(Unknown Source)
    at com.ocs.poetic.activation.UpgradeActivationUtil.updateValidationProductMsg(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    - locked java.lang.Object@7e0c2370
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@51e6d8e0

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU" - Thread t@69427
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.rollbackEntitlementData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@aa88422

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU" - Thread t@69376
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@3d7ad9a5

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU" - Thread t@69372
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@4c66ff2b

"Batch Lane Thread (JobName - PROCESS_BATCH_UPGRADES QueuePubID - SU)" - Thread t@69368
   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.FutureTask$Sync@19a93734
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227)
    at java.util.concurrent.FutureTask.get(FutureTask.java:91)
    at java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:251)
    at com.ocs.poetic.batch.BatchJobProcess.processEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.pollEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.processEvent(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@7dfa873c

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69341
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@4ac4b4c1

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69337
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@38371140

"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESMU" - Thread t@69333
   java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370 owned by: Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU
    at com.ocs.poetic.activation.BatchUpgradeProcess.prepareBatchUpgradeData(Unknown Source)
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at com.ocs.poetic.batch.BatchJobDetailProcess.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@274d9d95

"Batch Lane Thread (JobName - PROCESS_BATCH_UPGRADES QueuePubID - MU)" - Thread t@69329
   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.FutureTask$Sync@34674415
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227)
    at java.util.concurrent.FutureTask.get(FutureTask.java:91)
    at java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:251)
    at com.ocs.poetic.batch.BatchJobProcess.processEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.pollEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.processEvent(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@257e96d4

"Batch Lane Thread (JobName - PROCESS_BATCH_UPGRADES QueuePubID - SU)" - Thread t@69292
   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.FutureTask$Sync@67a6d993
    at sun.misc.Unsafe.park(Native Method)
    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedNanos(AbstractQueuedSynchronizer.java:1011)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1303)
    at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:227)
    at java.util.concurrent.FutureTask.get(FutureTask.java:91)
    at java.util.concurrent.AbstractExecutorService.invokeAll(AbstractExecutorService.java:251)
    at com.ocs.poetic.batch.BatchJobProcess.processEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.pollEventDetails(Unknown Source)
    at com.ocs.poetic.batch.BatchJobProcess.process(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.processEvent(Unknown Source)
    at com.ocs.poetic.batch.BatchJobLane.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@19e04b87

"Batch Queue Thread (PROCESS_BATCH_UPGRADES)" - Thread t@69288
   java.lang.Thread.State: TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at com.ocs.poetic.batch.BatchJobQueue.checkLaneStatus(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.processEvents(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@547e9956

"Batch Queue Thread (PROCESS_BATCH_UPGRADES)" - Thread t@69284
   java.lang.Thread.State: TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at com.ocs.poetic.batch.BatchJobQueue.checkLaneStatus(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.processEvents(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@43850870

"Batch Queue Thread (PROCESS_BATCH_UPGRADES)" - Thread t@69280
   java.lang.Thread.State: TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at com.ocs.poetic.batch.BatchJobQueue.checkLaneStatus(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.processEvents(Unknown Source)
    at com.ocs.poetic.batch.BatchJobQueue.run(Unknown Source)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.runTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - locked java.util.concurrent.locks.ReentrantLock$NonfairSync@52ed13b1

"AWT-Windows" - Thread t@10846
   java.lang.Thread.State: RUNNABLE
    at sun.awt.windows.WToolkit.eventLoop(Native Method)
    at sun.awt.windows.WToolkit.run(WToolkit.java:293)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Java2D Disposer" - Thread t@7165
   java.lang.Thread.State: WAITING on java.lang.ref.ReferenceQueue$Lock@7b16770e
    at java.lang.Object.wait(Native Method)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
    at sun.java2d.Disposer.run(Disposer.java:127)
    at java.lang.Thread.run(Thread.java:662)

   Locked ownable synchronizers:
    - None

"Sequence ID Retriever Thread" - Thread t@116
   java.lang.Thread.State: WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@7fe27743
    at sun.misc.Unsafe.park(Native Method)
    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.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
    at com.ocs.framework.server.AppServerThreadPoolExecutor.getTask(Unknown Source)
    at com.ocs.framework.server.AppServerThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:662)
    at com.ocs.framework.server.AppServerThread.run(Unknown Source)

   Locked ownable synchronizers:
    - None

"QuartzScheduler_PoeticBGScheduler-esessmw0521.ss.sw.ericsson.se:5866_MisfireHandler" - Thread t@108
   java.lang.Thread.State: TIMED_WAITING
    at java.lang.Thread.sleep(Native Method)
    at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:3840)

   Locked ownable synchronizers:
    - None

1 个答案:

答案 0 :(得分:2)

许多线程都在等待同一个锁java.lang.Object@7e0c2370

java.lang.Thread.State: BLOCKED on java.lang.Object@7e0c2370

持有
"Batch Job Detail ThreadPROCESS_BATCH_UPGRADESSU" - Thread t@69431
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    ...
    - locked com.inet.tds.an@5d50875c
    at com.inet.tds.u.executeQuery(Unknown Source)
    ...
    - locked java.lang.Object@7e0c2370
    at com.ocs.poetic.activation.BatchUpgradeDetailProcess.process(Unknown Source)
    ...

所以看来后一个线程在持有锁时从套接字读取,这会阻止所有其他线程进行。