Open kyle-copeland opened 2 months ago
Accidently opened issue before completing issue. Closing for now
Re-opening now that information is filled in
Thanks for reporting this! Your first suggestion sounds feasible in the short term, the second one might be more involved?
We're experiencing the same problem after upgrading from 3.8.0 to 5.0.9, I guess we will increase the minPoolSize for now, but we will also be looking forward to a fix.
Describe the bug When multiple threads attempt to grab database connections, Atomikos will at most attempt to grow the pool twice before failing, regardless of the
borrowConnectionTimeout
.To Reproduce Steps to reproduce the behavior:
borrowConnectionTimeout
in waitForAtLeastOneAvailableConnectionWhat you were doing (or trying to do): When our app boots, we spin up multiple worker threads. These threads all query the database to see if they have work to perform.
What happened We infrequently get:
What you expected to happen instead Some ideas
Have Atomikos wait to grab a connection at a set interval with a maximum of
borrowConnectionTimeout
. This would mean replacingwait(remainderOfTime)
, with somewait(fractionOfRemainerOftime)
here.Have Atomikos guarantee that the connection created in grow() is granted to the thread requesting a connection.
What TransactionsEssentials version you are using
6.0.109
Additional context Add any other context about the problem here.