JBoss stalled scheduling work to the JCA WorkManager
Issue
JBoss
slowed and showed heavy thread contention trying to schedule work to the JCA WorkManager:
Thread 470: (state = BLOCKED)
- sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; information may be imprecise)
- java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14, line=186 (Compiled frame)
- java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() @bci=42, line=2043 (Compiled frame)
- org.jboss.threads.QueueExecutor.executeBlocking(java.lang.Runnable) @bci=138, line=253 (Compiled frame)
- org.jboss.as.threads.ManagedQueueExecutorService.executeBlocking(java.lang.Runnable) @bci=5, line=120 (Compiled frame)
- org.jboss.jca.core.workmanager.WorkManagerImpl.scheduleWork(javax.resource.spi.work.Work, long, javax.resource.spi.work.ExecutionContext, javax.resource.spi.work.WorkListener) @bci=205, line=583 (Compiled frame)
-
How to explicitly configure the long running and short running threads? Where to do it?
-
We are using Jboss eap 6.2 and we are using ironjcamar workmanager to process the work .
we found a hung thread issue during our testing . As we observed this issue only occurred in case we use more than 40 or 50 workmanager thread .
We have taken a thread dump that gives some clue .
snippet froom thread dump is as below and full thread dump file has been attached .
WorkManagement" prio=10 tid=0x00007f4a6c5d2000 nid=0x5bc1 waiting on condition [0x00007f4c3839c000]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000007d9286b30> (a java.util.concurrent.CountDownLatch$Sync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:236)
at org.jboss.jca.core.workmanager.WorkManagerImpl.startWork(WorkManagerImpl.java:479)
at com.j2fe.work.JavaxWorkManagerWrapper.startWork(JavaxWorkManagerWrapper.java:26)
at com.j2fe.clustering.WorkReplication.startThread(WorkReplication.java:499)
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.