1

我的应用程序批处理作业挂起,日志中没有任何错误。当作业挂起时,不会有数据库更新或插入,我也可以同时看到数据库块。系统中什么也没有发生,一切似乎都卡住了。请参阅我在发布期间采取的完整线程转储。请帮助我了解这是代码问题还是导致批处理作业挂起的任何外部因素。作为临时解决方法,我有时会杀死数据库块或重新启动 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
4

1 回答 1

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)
    ...

因此,似乎后一个线程在持有锁的同时从套接字读取,这会阻止所有其他线程取得进展。

于 2013-06-02T17:25:33.277 回答