連接池(Connection pooling)是對查詢數據庫的用戶的連接進行管理的術語,雖然很多用戶可能沒有注意到,但是當有大量用戶在請求訪問數據庫所在的應用服務器時,在這些時候,服務器幾乎不可能保持與所有連接的良好連接。支持連接...
連接池(Connection pooling)是對查詢數據庫的用戶的連接進行管理的術語,雖然很多用戶可能沒有注意到,但是當有大量用戶在請求訪問數據庫所在的應用服務器時,在這些時候,服務器幾乎不可能保持與所有連接的良好連接。支持連接池的軟件工程使服務器能夠很好地管理連接,而不管進行查詢的連接數量有多大,并且能夠響應這些連接以次秒的速度進行查詢。

連接池是對查詢數據庫的用戶的連接進行管理的術語連接必須具有相同的配置才能包含在連接池中,因此大多數服務器連接池程序都會同時運行不同的連接池。當用戶試圖連接時,如果空間可用,則會將其分配到具有類似配置的池中。如果沒有可用空間,請求一出現就排隊等待分配。用戶可能不知道他或她在隊列中,但可能只是注意到數據庫在查詢響應方面似乎很慢;但是在數據庫管理系統的后臺,對池進行掃描,以便為用戶查找打開的連接找到空間。大多數連接池程序都有一組列表,列出每個池的最大用戶數和最短時間設置,在斷開連接并將可用性返回池之前,連接可以保持非活動狀態創建連接池時,會創建一定數量的連接對象并將其添加到池中。要使池被視為活動的,它需要最少數量的對象。這些連接對象是將連接綁定到池的可用性席位,它們可以根據需要創建并添加到池中,直到池中允許的最大值。當用戶對其查詢滿意并放棄連接對象時,連接池程序將這些對象返回到池中,供其他用戶或同一用戶返回時使用在連接池中,可能會減慢響應時間的一個因素是所謂的池碎片化。池碎片通常是由于集成的安全性或駐留在一組現有服務器上的數據庫太多而導致的對用戶進行身份驗證,然后將其排隊或分配給現有的連接池對象會消耗內存,更嚴格的訪問系統設計通常可以解決數據庫過多的問題。在許多連接池程序中,基于Windows的程序的集成安全系統設計要求一次只能有一個基于Windows的用戶駐留在一個池中。這可以通過創建更多的池來解決,以容納更多的請求需要并發應答。如果連接池程序檢測到某個用戶的空閑時間超過了設定的時間段或連接已斷開,它將把連接對象作為無效對象返回到池中如果服務器在連接生效時關閉,即使連接池不知道斷開的連接,連接仍可以撤消。ActiveX連接池程序通常會在服務器重新啟動時繼續清除這些連接池。