今天腦子一抽想到一個問題,就是當連接池中沒有空閑連接的時候會新建一定數量的池連接,然后忽然想到如果這時有連接關閉的話是會返回到連接池還是會消失?
緊接着去百度了一下,我去,瞬間感覺自己low比了,空閑下來的連接肯定會返回連接池啊,當然連接池中的池連接也不是無限制的,會有一個上線(一般是自己設置),到達這個上線之后,再想獲取池連接的話就只能等待了。
一般來說,J2EE服務器在啟動的時候會創建一定數量的池連接,並且一直維持不少於這個數目的池連接。
當客戶端程序需要的時候,驅動程序會返回一個沒有使用的池連接,並將返回的池連接標記為忙。
如果客戶端需要連接,但是當前沒有空閑連接,池驅動程序就會創建一定數量的連接,新建連接的數量由配置參數決定。
當使用的池連接調用完成后,池驅動程序將此鏈接標記為空閑,其他大的調用就可以使用這個連接了。
實現方式,返回的connection是原始的connection的代理,代理connection的close方法不是真正關閉連接,而是把它的代理的connection對象返回到連接池中。