*[Java]プーリングの疑問

JDBCコネクションプーリングとかオブジェクトプーリングとかあるけど、あのプーリングのアルゴリズムって、どのタイミングからプールから取得して、どのタイミングでプールに解放するんだろう?
例えば、JDBCコネクションプーリングで考えてみる。JDBCコネクションプーリングはいわゆるDBMSのセッションをプーリングするんだけど、あるオブジェクトがコネクションを使っているときは、他のオブジェクトはこのコネクションを使えないのかな?
もし、使えちゃうと、DBMSにとってみれば、同じセッションからSQLが投げられたんだから同じユーザとしてみるからロールバックしちゃうこともあるし、そうなると整合性がなくなっちゃうわな。

オブジェクトがコネクションを解放するまではずっと1つのオブジェクトがコネクションを占領しているのかな?共有しちゃうのかな?

もはやそんなの当たり前で気にしなくていいのかな?