WebSphere快速入門(19)
發表于:2007-07-01來源:作者:點擊數:
標簽:
6.5 連接管理器 連接管理器使您可以控制并減少由 Web 應用程序使用的資源。相對于非 Web 應用程序,基于 Web 的應用程序對數據 服務器 的訪問會導致更高的和不可預料的系統開銷,這是由于 Web 用戶更為頻繁的連接和斷開。通常連接與斷開連接所用的資源大于交
6.5 連接管理器
連接管理器使您可以控制并減少由 Web 應用程序使用的資源。相對于非 Web 應用程序,基于 Web 的應用程序對數據
服務器的訪問會導致更高的和不可預料的系統開銷,這是由于 Web 用戶更為頻繁的連接和斷開。通常連接與斷開連接所用的資源大于交互所用的資源。由于 Internet 的“沖浪”性質,用戶的交互過程一般都較短。通常,公司外(Internet,而非 intranet)的用戶會將使用卷變得很大,并難以預料。連接管理器通過建立用戶 Servlet 可用的連接緩沖池將連接的系統開銷分攤給多個用戶請求。換言之,每個用戶請求僅占用連接/斷開連接所用系統開銷成本的一小部分。在使用初始資源建立緩沖池中的連接后,其余連接/斷開連接所用的系統開銷就不大了,因為這只是重復使用已有的連接而已。
Servlet 以如下方式使用連接緩沖池:當一個用戶通過 Web 向 Servlet 請求時, Servlet 從緩沖池使用一個已有的連接,這意味著用戶請求不會引起數據服務器的連接系統開銷。當滿足請求時,Servlet 將連接返回至連接管理器緩沖池供其它 Servlet 使用。因而用戶請求不會引起數據服務器的斷開連接的系統開銷。
連接管理器還使您能控制到數據服務器產品的并發連接數。當數據服務器的許可證協議限定用戶數量時,這一特性是非常有用的??梢詾閿祿掌鲃摻ㄒ粋€緩沖池,并將連接管理器緩沖池的“最多連接數”參數設成數據服務器產品許可證中限定的最大用戶數。如果用其它程序而不用連接管理器連接到數據服務器,則不能保證該方法有效。
1. 連接管理器結構
連接管理器維護一個連接到特定數據服務器產品處于打開狀態的數據服務器緩沖池。每個數據服務器可以有一個或多個等同的或非等同的緩沖池。連接管理器的一個運行實例可以支持多個數據服務器。圖6-1說明了在連接管理器與一個正在連接管理器的連接緩沖池中尋找可使用的連接的 Servlet 之間的典型交互作用。
(1) 當第一個 Servlet 試圖與連接管理器通信時,由
WebSphere應用服務器裝入運行在WebSphere應用服務器下的連接管理器。只要WebSphere應用服務器在運行,連接管理器就一直被裝入。
(2) WebSphere應用服務器將用戶請求傳遞給一個 Servlet。
(3) Servlet 用連接管理器使用的方法從緩沖池中請求一個連接。
(4) 緩沖池給 Servlet 分配一個連接。
(5) Servlet 使用連接與數據服務器直接對話,這一過程中使用的是特定數據服務器的標準 API。
(6) 數據服務器通過與 Servlet 的連接返回數據。
(7) 當 Servlet 結束與數據服務器通信時,Servlet 把連接歸還給連接管理器緩沖池,以供其它
Servlet 使用。
(8) Servlet 通過WebSphere應用服務器向用戶發回響應。
在 Servlet 請求一個連接時,緩沖池中不一定有可用的連接。在這種情況下,連接管理器直接與數據服務器通信。連接管理器將:
l 請求一個新的連接(參見圖6-1中的9 )。
l 將連接添加到緩沖池中(參見圖6-1中的10)。如果緩沖池中的連接數達到了規定的上限,連接服務器將不會把新的連接加入緩沖池中。
l 將新的連接交給 Servlet(參見圖6-1中的4)。
2.
性能特性
為緩沖池創建一個新的連接是一項系統開銷很高的任務,新的連接將使用數據服務器上的資源。因此連接管理器盡量用緩沖池中的現有連接來滿足 Servlet 的請求。 同時,連接管理器必須盡可能地最小
圖6-1:連接管理器與Servlet 之間的交互
化緩沖池中的空閑連接,因為這是對系統資源的極大浪費。連接管理器與 Servlet 一同執行這些最小化和最大化任務。對于可選的性能,請適當地設置連接管理器參數。
連接管理器維護每個連接的驗證時間標記、最近使用時間標記和正在使用標志。當某個 Servlet 第一次獲得連接時,連接的驗證時間標記和最近使用時間標記被設置為當前時間,連接的正在使用標志則被設置為真。
可將連接服務器配置成從某個 Servlet 中移走一個長時間未使用的連接。這個時間長度是由連接管理器的 “最長周期”參數指定的。如果 Servlet 準備在較長一段時期內使用連接與數據服務器多次通信,可能希望將代碼加入 Servlet 中,以便在每次使用連接之前,確認它仍占有這個連接。連接管理器從緩沖池中除去空閑的連接,因為它們會浪費資源。為了確定哪個連接是空閑的,連接管理器將檢查連接標志和時間標記,這個操作是通過周期性地獲取連接緩沖池信息來實現的:
(1) 連接管理器查看正在使用連接的最近使用時間標記。如果最近使用時間和當前時間之間的時間差大于“最長周期” 配置參數,則本連接將被認為是一個殘留連接,這就表明占有它的 Servlet 已終止或者沒有響應。殘留連接將被歸還給緩沖池以供其它 Servlet 使用,它的正在使用標志被設置為假,且驗證和最近使用時間標記被設置為當前時間。
(2) 連接管理器檢查未被任何 Servlet 使用的連接(這些連接的正在使用標志為假)。如果最近使用時間與當前時間的時間差超過了“最長空閑時間”配置參數,將認為本連接是空閑的??臻e連接將被從緩沖池中除去,降至“最少連接數”配置參數指定的較低限定值。
3.監控連接管理器
WebSphere應用服務器管理器為名為
數據庫緩沖池連接的連接管理器提供了一個監控程序??梢允褂眠@些信息來查看如何執行連接緩沖池,并建議對連接緩沖池參數進行可能的更改??梢栽诟膮抵髮彌_池執行監控,從而查看緩沖池特性的更改并幫助進一步對緩沖池參數進行調整??梢赃x擇特定緩沖池,以從選擇列表中對其進行監控。
原文轉自:http://www.anti-gravitydesign.com