Threads Stuck In Busy/sleep Loop In UCP While Retrieving Connection From Pool After High Load
Last updated on JANUARY 27, 2017
Applies to:Universal Connection Pool - Version 22.214.171.124.0 and later
Information in this document applies to any platform.
After the input load subsides, application's threads are "stuck" in busy/sleep loops within UCP code while attempting to retrieve a connection from the UCP pool. The loops are pegging the CPU at 90+%.
After restarting the application, UCP returns to a "normal" state and can retrieve connections successfully.
Specifically, the stack dump indicates that the threads are stuck in a loop in LinkedListPool$1.reserveNext
The threads never return from this loop, and never throw any exceptions (e.g. a UniversalConnectionPoolException) .
In addition, while the threads are stuck, it is noticed that the UniversalConnectionPoolMBean for the pool reports an unexpected, extremely high availableConnectionsCount (1228), even when the maxPoolSize = 50.
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