JBoss stalled scheduling work to the JCA WorkManager

Solution Unverified - Updated -

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.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content