Threads Stuck In Busy/sleep Loop In UCP While Retrieving Connection From Pool After High Load (Doc ID 2225582.1)

Last updated on JANUARY 27, 2017

Applies to:

Universal Connection Pool - Version 12.1.0.2.0 and later
Information in this document applies to any platform.

Symptoms

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.

Cause

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