After ironjacamar release 1.2.1, the locking behavior got changed in order to support the Multiple Credential situation JBJCA-1233. This increases the wait time of getting the connections from the ManagedPool in multiple credential system, as the locking mechanism moved to Pool Level.
In my case I have hundreds of different credentials which create different ManagedConnectionPool, the retrieving of the connection from the pool was working seamlessly before 1.2.1 release. After the [JBJCA-1233] Keep statistics at pool level · ironjacamar/ironjacamar@baf85c3 · GitHub the wait time to get the connection from the pool increased tremendously. So to fix this, I fall back to use the behavior we had before 1.2.1 release, like creating lock per managedconnectionpool. After porting to the change, the system was running fine without much delay in getting the connection.
So there are some cases where we are ok to have the connection grow beyond what we configure, eg say in multiple Credential behavior I have some 100 different credential and the maxPool configured is 10, I'm ok to have 100*10 connection creation, rather than sacrificing the reduced wait time while retrieving. Can we have separate ManagedConnection Pool implementation for handling such cases? or If you can address this in different manner it is ok.