天天看點

什麼是連接配接池,其工作原理是什麼?

連接配接池用于建立和管理資料庫連接配接的緩沖池技術,緩沖池中的連接配接可以被任何需要他們的線程使用。當一個線程需要用jdbc對一個資料庫操作時,将從池中請求一個連接配接。當這個連接配接使用完畢後,将傳回到連接配接池中,等待為其他的線程服務。 連接配接池的主要優點有以下三個方面。

第一、減少連接配接建立時間。連接配接池中的連接配接是已準備好的、可重複使用的,擷取後可以直接通路資料庫,是以減少了連接配接建立的次數和時間。

第二、簡化的程式設計模式。當使用連接配接池時,每一個單獨的線程能夠像建立一個自己的jdbc連接配接一樣操作,允許使用者直接使用jdbc程式設計技術。

第三、控制資源的使用。如果不使用連接配接池,每次通路資料庫都需要建立一個連接配接,這樣系統的穩定性受系統連接配接需求影響很大,很容易産生資源浪費和高負載異常。連接配接池能夠使性能最大化,将資源利用控制在一定的水準之下。連接配接池能控制池中的連接配接數量,增強了系統在大量使用者應用時的穩定性。

下面,簡單的闡述下連接配接池的工作原理。

連接配接池技術的核心思想是連接配接複用,通過建立一個資料庫連接配接池以及一套連接配接使用、配置設定和管理政策,使得該連接配接池中的連接配接可以得到高效、安全的複用,避免了資料庫連接配接頻繁建立、關閉的開銷。

連接配接池的工作原理主要由三部分組成,分别為連接配接池的建立、連接配接池中連接配接的使用管理、連接配接池的關閉。

第一、連接配接池的建立。一般在系統初始化時,連接配接池會根據系統配置建立,并在池中建立了幾個連接配接對象,以便使用時能從連接配接池中擷取。連接配接池中的連接配接不能随意建立和關閉,這樣避免了連接配接随意建立和關閉造成的系統開銷。java中提供了很多容器類可以友善的建構連接配接池,例如vector、stack等。

第二、連接配接池的管理。連接配接池管理政策是連接配接池機制的核心,連接配接池内連接配接的配置設定和釋放對系統的性能有很大的影響。其管理政策是:

當客戶請求資料庫連接配接時,首先檢視連接配接池中是否有空閑連接配接,如果存在空閑連接配接,則将連接配接配置設定給客戶使用;如果沒有空閑連接配接,則檢視目前所開的連接配接數是否已經達到最大連接配接數,如果沒達到就重新建立一個連接配接給請求的客戶;如果達到就按設定的最大等待時間進行等待,如果超出最大等待時間,則抛出異常給客戶。 當客戶釋放資料庫連接配接時,先判斷該連接配接的引用次數是否超過了規定值,如果超過就從連接配接池中删除該連接配接,否則保留為其他客戶服務。

該政策保證了資料庫連接配接的有效複用,避免頻繁的建立、釋放連接配接所帶來的系統資源開銷。

第三、連接配接池的關閉。當應用程式退出時,關閉連接配接池中所有的連接配接,釋放連接配接池相關的資源,該過程正好與建立相反。

參考:[http://blog.csdn.net/abcd0000/article/details/6803694](http://blog.csdn.net/abcd0000/article/details/6803694)