OSB - Response Pipeline Threads Are Stuck Waiting For a Semaphore

(Doc ID 977426.1)

Last updated on MAY 27, 2016

Applies to:

Oracle Service Bus - Version 3.0 and later
Information in this document applies to any platform.


During high load you see stuck threads in your OSB domain.

The threads are receiving a message and are waiting for the outbound sendAsync() operation to be completed before processing it.
They are trying to acquire a semaphore but the thread which acquired (and should have released) the semaphore is not available any more.

The majority of the execute threads have the following stack trace:

"[ACTIVE] ExecuteThread: '394' for queue: 'weblogic.kernel.Default
(self-tuning)'" id=431 idx=0x758 tid=472 prio=5 alive, in native, parked, daemon
at jrockit/vm/Locks.park0(J)V(Native Method)
at jrockit/vm/Locks.park(Locks.java:2490)[inlined]
at jrockit/proxy/sun/misc/Unsafe.park(Unsafe.java:592)[inlined]
at java/util/concurrent/locks/LockSupport.park(LockSupport.java:118)[inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:716)[inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:872)[inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1179)[inlined]
at java/util/concurrent/Semaphore.acquire(Semaphore.java:272)[inlined]
at com/bea/wli/sb/transports/LoadBalanceFailoverListener.onReceiveResponse(LoadBalanceFailoverListener.java:181)[optimized]


Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms