If connection creation is timing out, this can cause threads waiting on the checkOutLock to block.
Enforce the blockWaitTime on the checkOutLock so that each thread does not have to wait in turn for connection creation to time out.
Improve the grow method which could potentially cause the pool to exceed it's max size by acquiring the checkOutLock.
Note that this could only occur when the pool is below it's min size and min and max sizes are the same.
If connection creation is timing out, this can cause threads waiting on the checkOutLock to block. Enforce the blockWaitTime on the checkOutLock so that each thread does not have to wait in turn for connection creation to time out. Improve the grow method which could potentially cause the pool to exceed it's max size by acquiring the checkOutLock. Note that this could only occur when the pool is below it's min size and min and max sizes are the same.