My Oracle Support Banner

OSB - Response Pipeline Threads Are Stuck Waiting For a Semaphore (Doc ID 977426.1)

Last updated on SEPTEMBER 25, 2020

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([inlined]
at jrockit/proxy/sun/misc/Unsafe.park([inlined]
at java/util/concurrent/locks/LockSupport.park([inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.parkAndCheckInterrupt([inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.doAcquireSharedInterruptibly([inlined]
at java/util/concurrent/locks/AbstractQueuedSynchronizer.acquireSharedInterruptibly([inlined]
at java/util/concurrent/Semaphore.acquire([inlined]
at com/bea/wli/sb/transports/LoadBalanceFailoverListener.onReceiveResponse([optimized]


To view full details, sign in with your My Oracle Support account.

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

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.