我的应用程序批处理作业挂起,日志中没有任何错误。当作业挂起时,将不会有数据库更新或插入,我也可以同时看到数据库块。系统中没有任何事情发生,一切似乎都停滞不前。查看我在发布时间内完成的完整线程转储。请帮助我理解这是代码问题还是导致批处理作业挂起的任何外部因素。作为临时解决方法,我有时会终止数据库块或重启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
答案 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)
...
所以看来后一个线程在持有锁时从套接字读取,这会阻止所有其他线程进行。