You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
What 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.
AtomikosSQLException: Connection pool exhausted - try increasing 'maxPoolSize' and/or 'borrowConnectionTimeout' on the DataSourceBean.
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 replacing wait(remainderOfTime), with some wait(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.
The text was updated successfully, but these errors were encountered:
kyle-copeland
changed the title
ChangewaitForAtLeastOneAvailableConnection waits for total borrowConnectionTimeout preventing potential ability to borrow connection
Jun 26, 2024
kyle-copeland
changed the title
waitForAtLeastOneAvailableConnection waits for total borrowConnectionTimeout preventing potential ability to borrow connectionwaitForAtLeastOneAvailableConnection waits for total borrowConnectionTimeout reducing potential ability to borrow connection
Jun 26, 2024
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.
The text was updated successfully, but these errors were encountered: