I read the documentation for idle connection testing. I have a few questions:

1. testConnectionOnCheckin and testConnectionOnCheckout happen when the connection is returned to the pool and when the connection is requested from the pool respectively. Is my understanding correct?

2. The documentation says idleConnectionTestPeriod, testConnectionOnCheckout, and testConnectionOnCheckin control when Connections will be tested. Also it says Most applications should work quite reliably using a combination of idleConnectionTestPeriod and testConnectionsOnCheckIn. Since both of these parameters detemine when the connection is tested how do they work together?