1. 程式人生 > 資料庫 >《sql》連線池

《sql》連線池

  連線池引數  

1)最小連線數:資料庫一直保持的資料庫連線數

2)最大連線數:是連線池能申請的最大連線數,如果資料庫連線請求超過此數,後面的資料庫連線請求被加入到等待佇列中。

3)初始化連線數:連線池啟動時建立的初始化資料庫連線數量。

4)最大等待時間:當沒有可用連線時,連線池等待連線被歸還的最大時間,超過時間則丟擲異常。可設定引數為0或者負數使得無限等待(根據不同連線池配置)。

 

  第一、連線池的建立。 建立連線池物件,按照事先指定的引數建立初始數量的資料庫連線。  

第二、連線池的管理。 

當客戶請求資料庫連線時,首先檢視連線池中是否有空閒連線,

如果存在空閒連線,則將連線分配給客戶使用並作相應處理(即標記該連線為正在使用,引用計數加 1);

如果沒有空閒連線,則檢視當前所開的連線數是否已經達到最大連線數

  •   如果沒有達到最大連線數,就重新建立一個連線給請求的客戶;
  •   如果達到,就按設定的最大等待時間進行等待,如果超出最大等待時間,則丟擲異常給客戶。

 

當客戶釋放資料庫連線時,先判斷該連線的引用次數是否超過了規定值,

  •   如果超過了就從連線池中刪除該連線,並判斷當前連線池內總的連線數是否小於最小連線數,若小於就將連線池充滿;
  •   如果沒超過就將該連線標記為開放狀態,可供再次複用。

第三、連線池的關閉。 當應用程式退出時,關閉連線池中所有的連結,釋放連線池相關資源。