專利名稱:一種Web服務(wù)器的并發(fā)數(shù)限制方法
一種Web服務(wù)器的并發(fā)數(shù)限制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,尤指一種Web服務(wù)器并發(fā)數(shù)量的限制方法。背景技術(shù):
在三層體系構(gòu)架中,Web服務(wù)器通常通過數(shù)據(jù)庫連接池來訪問數(shù)據(jù)庫。在一個 用戶請求提交后,Web服務(wù)器從連接池中找到一個空閑的連接,然后使用該連接訪問數(shù) 據(jù)庫,訪問完成后,該連接被釋放,將可被用于下一次用戶請求。當(dāng)用戶請求時,如果 沒有空閑的連接,該請求將處于等待狀態(tài)。連接池的大小一方面取決于用戶請求的頻度和每次使用連接所花費(fèi)的時間,另 一方面也受到數(shù)據(jù)庫服務(wù)能力的限制。當(dāng)每一次數(shù)據(jù)庫訪問所需時間很短時,連接池中 的數(shù)據(jù)庫連接被不斷地使用和釋放,連接池并不需要太大就能滿足需求。但是當(dāng)用戶請 求中存在一些大的統(tǒng)計或查詢時,每一次請求都將占用連接很長的時間,連接池將逐漸 被這些請求所耗盡,最終導(dǎo)致所有用戶請求無論需要使用數(shù)據(jù)庫資源的多少都處于等待 狀態(tài),整個系統(tǒng)將呈現(xiàn)幾乎停止響應(yīng)的現(xiàn)象。為了解決這一問題,有些應(yīng)用系統(tǒng)將一般查詢和大查詢分開,專門為大查詢建 立一個查詢數(shù)據(jù)庫,從而保證一般查詢應(yīng)用的性能。但是這樣增加貯存空間,不便于數(shù)
據(jù)的管理。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題和提出的技術(shù)任務(wù)是對現(xiàn)有技術(shù)方案進(jìn)行完善與改 進(jìn),提供一種Web服務(wù)器并發(fā)數(shù)量的限制方法,使得響應(yīng)慢的查詢不會影響到系統(tǒng)的總 體響應(yīng)能力。為此,本發(fā)明采取以下技術(shù)方案1、一種Web服務(wù)器的并發(fā)數(shù)限制方法,其特征在于它包括以下步驟(1)在Web服務(wù)器中設(shè)數(shù)據(jù)庫連接池、查詢連接模塊及復(fù)數(shù)個業(yè)務(wù)功能模塊,各 業(yè)務(wù)功能模塊通過查詢連接模塊訪問數(shù)據(jù)庫連接池;(2)根據(jù)各業(yè)務(wù)功能模塊一次數(shù)據(jù)庫查詢所耗費(fèi)的數(shù)據(jù)庫資源的大小分為大查詢 業(yè)務(wù)功能模塊和一般查詢業(yè)務(wù)功能模塊,并將查詢連接模塊分為大查詢連接模塊和一般 連接查詢模塊使各業(yè)務(wù)功能模塊分別與大查詢連接模塊或一般查詢模塊對應(yīng)連接;(3)大查詢連接模塊設(shè)有總計數(shù)器及最大總并發(fā)數(shù),總計數(shù)器的初始值為0 ;(4)當(dāng)用戶端提交大查詢請求至Web服務(wù)器時,在大查詢連接模塊中比較總主 計數(shù)器值與最大總并發(fā)數(shù),若總計數(shù)器值小于最大總并發(fā)數(shù),則將總計數(shù)器值加1,然后 從數(shù)據(jù)庫連接池獲取一個數(shù)據(jù)庫連接,并通過此連接向數(shù)據(jù)庫服務(wù)器提交數(shù)據(jù)庫訪問請 求;否則提示用戶等待;在數(shù)據(jù)庫請求返回并釋放數(shù)據(jù)庫連接后,將總計數(shù)器值減1。將各項(xiàng)查詢業(yè)務(wù)按照一次訪問數(shù)據(jù)庫所花費(fèi)的時間長短分類,時間較短的作為 一般查詢業(yè)務(wù),時間較長的作為大查詢業(yè)務(wù),客戶端輸入查詢信息后經(jīng)過業(yè)務(wù)功能模塊轉(zhuǎn)化為數(shù)據(jù)庫查詢語言,并與對應(yīng)的大查詢連接模塊或一般查詢連接模塊連接,大查詢 業(yè)務(wù)在大查詢連接模塊中管理,一般查詢業(yè)務(wù)在一般查詢連接模塊中管理。在大查詢連 接模塊中增設(shè)總計數(shù)器及最大總并發(fā)數(shù),通過設(shè)定最大總并發(fā)數(shù)限制大查詢連接數(shù)量, 限制大查詢對一般查詢的影響,在沒有增加數(shù)據(jù)庫的前提下,保證了一般查詢的響應(yīng)能 力。作為對上述技術(shù)方案的進(jìn)一步完善和補(bǔ)充,本發(fā)明還包括以下附加技術(shù)特征所述大查詢連接模塊包括復(fù)數(shù)個與大查詢業(yè)務(wù)功能模塊對應(yīng)的大查詢連接單 元,所述的每一個大查詢連接單元均設(shè)有計數(shù)器值與最大并發(fā)數(shù)。Web服務(wù)器中的大查 詢連接單元的建立,細(xì)化連接,有助于減少查詢時間。當(dāng)用戶端提交大查詢請求至Web服務(wù)器時,判斷對應(yīng)大查詢連接單元的計數(shù)器 及大查詢連接模塊的總計數(shù)器是否達(dá)到最大并發(fā)數(shù)及最大總并發(fā)數(shù),如果均未達(dá)到,則 將這兩個計數(shù)器分別加1,然后提交數(shù)據(jù)庫訪問請求;否則提示用戶等待;在數(shù)據(jù)庫請 求返回后,將這兩個計數(shù)器分別減1。大查詢連接模塊設(shè)最大總并發(fā)數(shù),且每一個大查詢 連接單元均設(shè)有最大并發(fā)數(shù),以控制同一大查詢的并發(fā)數(shù),避免影響其它大查詢響應(yīng), 提高數(shù)據(jù)資源的利用率,同時保證了一般查詢的響應(yīng)能力。有益效果通過對大查詢并發(fā)數(shù)的限制,在沒有增加數(shù)據(jù)庫的前提下,保證了 一般業(yè)務(wù)的響應(yīng)能力。
圖1是本發(fā)明結(jié)構(gòu)原理圖。圖2是本發(fā)明流程圖。
具體實(shí)施方式以下結(jié)合說明書附圖對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)說明。如圖1所示,本發(fā)明涉及的硬件有web服務(wù)器、數(shù)據(jù)庫服務(wù)器,在web服務(wù)器 中建立數(shù)據(jù)庫連接池、查詢連接模塊及復(fù)數(shù)個業(yè)務(wù)功能模塊,客戶端信息通過服務(wù)器中 的業(yè)務(wù)功能模塊與查詢連接模塊連接以訪問數(shù)據(jù)庫連接池。其中因客戶端輸入的查詢內(nèi) 容不同,分為多個大查詢業(yè)務(wù)及一般查詢業(yè)務(wù),上述業(yè)務(wù)分別對應(yīng)于各業(yè)務(wù)功能模塊, 通過各業(yè)務(wù)功能模塊的轉(zhuǎn)換、運(yùn)算形成數(shù)據(jù)庫查詢語言后與相應(yīng)的查詢連接模塊連接, 其中大查詢業(yè)務(wù)通過m個業(yè)務(wù)功能模塊與大查詢連接模塊中對應(yīng)的m個大查詢連接單元 連接;在大查詢連接模塊中設(shè)有總計數(shù)器及最大總并發(fā)數(shù),且各個大查詢連接單元均設(shè) 計數(shù)器及最大并發(fā)數(shù)。如圖2所示,本發(fā)明包括以下步驟1、由客戶端輸入大查詢信息;2、查詢信息通過業(yè)務(wù)功能模塊編譯成數(shù)據(jù)庫查詢語言后與對應(yīng)的大查詢連接模 塊連接;判斷對應(yīng)大查詢連接單元的計數(shù)器及大查詢連接模塊的總計數(shù)器是否達(dá)到最大 并發(fā)數(shù)及最大總并發(fā)數(shù),如果均未達(dá)到,則將這兩個計數(shù)器分別加1,否則提示用戶等 待;3、待兩計數(shù)器加1后,從數(shù)據(jù)庫連接池中獲得一個連接并執(zhí)行查詢命令;
4、在數(shù)據(jù)庫請求返回并釋放數(shù)據(jù)庫連接后,將這兩個計數(shù)器分別減1 ;5、向客戶顯示查詢結(jié)果。舉例說明如下假設(shè)存在2個大查詢業(yè)務(wù),Web服務(wù)器的相應(yīng)大查詢連接單元的計數(shù)器分別 為Cl和C2,最大并發(fā)數(shù)分別為ClMAX和C2MAX;總的計數(shù)器為C,最大并發(fā)數(shù)為 CMAX。初始化Cl= 0,c2 = 0。當(dāng)用戶提交第一個大查詢請求時,在訪問數(shù)據(jù)庫前檢查cl < ClMAXandc < CMAX條件是否滿足,如果滿足,則cl = cl+l,c = c+l,并提交數(shù)據(jù)庫訪問請求;否則提示 用戶等待。在數(shù)據(jù)庫訪問返回后,執(zhí)行cl = cl_l,C = C-I0
權(quán)利要求
1.一種Web服務(wù)器的并發(fā)數(shù)限制方法,其特征在于它包括以下步驟(1)在Web服務(wù)器中設(shè)數(shù)據(jù)庫連接池、查詢連接模塊及復(fù)數(shù)個業(yè)務(wù)功能模塊,各業(yè)務(wù) 功能模塊通過查詢連接模塊訪問數(shù)據(jù)庫連接池;(2)根據(jù)各業(yè)務(wù)功能模塊一次數(shù)據(jù)庫查詢所耗費(fèi)的數(shù)據(jù)庫資源的大小分為大查詢業(yè)務(wù) 功能模塊和一般查詢業(yè)務(wù)功能模塊,并將查詢連接模塊分為大查詢連接模塊和一般連接 查詢模塊使各業(yè)務(wù)功能模塊分別與大查詢連接模塊或一般查詢模塊對應(yīng)連接;(3)大查詢連接模塊設(shè)有總計數(shù)器及最大總并發(fā)數(shù),總計數(shù)器的初始值為O;(4)當(dāng)用戶端提交大查詢請求至Web服務(wù)器時,在大查詢連接模塊中比較總主計數(shù)器 值與最大總并發(fā)數(shù),若總計數(shù)器值小于最大總并發(fā)數(shù),則將總計數(shù)器值加1,然后從數(shù)據(jù) 庫連接池獲取一個數(shù)據(jù)庫連接,并通過此連接向數(shù)據(jù)庫服務(wù)器提交數(shù)據(jù)庫訪問請求;否 則提示用戶等待;在數(shù)據(jù)庫請求返回并釋放數(shù)據(jù)庫連接后,將總計數(shù)器值減1。
2.根據(jù)權(quán)利要求1所示的一種Web服務(wù)器的并發(fā)數(shù)限制方法,其特征在于所述大 查詢連接模塊包括復(fù)數(shù)個與大查詢業(yè)務(wù)功能模塊對應(yīng)的大查詢連接單元,所述的每一個 大查詢連接單元均設(shè)有計數(shù)器值與最大并發(fā)數(shù)。
3.根據(jù)權(quán)利要求2所示的一種Web服務(wù)器的并發(fā)數(shù)限制方法,其特征在于當(dāng)用戶 端提交大查詢請求至Web服務(wù)器時,判斷對應(yīng)大查詢連接單元的計數(shù)器及大查詢連接模 塊的總計數(shù)器是否達(dá)到最大并發(fā)數(shù)及最大總并發(fā)數(shù),如果均未達(dá)到,則將這兩個計數(shù)器 分別加1,然后提交數(shù)據(jù)庫訪問請求;否則提示用戶等待;在數(shù)據(jù)庫請求返回并釋放數(shù) 據(jù)庫連接后,將這兩個計數(shù)器分別減1。
全文摘要
一種Web服務(wù)器的并發(fā)數(shù)限制方法,涉及信息技術(shù)領(lǐng)域。在三層體系構(gòu)架中,Web服務(wù)器通過連接池訪問數(shù)據(jù)庫,當(dāng)用戶請求中存在一些大的統(tǒng)計或查詢時,連接池逐漸被這些請求所耗盡,整個系統(tǒng)將出現(xiàn)停止響應(yīng)的現(xiàn)象。本發(fā)明把客戶端信息傳送給各業(yè)務(wù)功能模塊后通過查詢連接模塊訪問數(shù)據(jù)庫連接池,將查詢連接模塊分為大查詢連接模塊和一般連接查詢模塊,并在大查詢連接模塊設(shè)有最大總并發(fā)數(shù),當(dāng)用戶端提交大查詢請求時,若請求數(shù)小于最大總并發(fā)數(shù),則從數(shù)據(jù)庫連接池獲取一個數(shù)據(jù)庫連接,并通過此連接向數(shù)據(jù)庫服務(wù)器提交數(shù)據(jù)庫訪問請求,否則提示用戶等待。通過設(shè)定最大總并發(fā)數(shù)限制大查詢連接數(shù)量,保證一般查詢的響應(yīng)能力。
文檔編號G06F17/30GK102024008SQ20091030676
公開日2011年4月20日 申請日期2009年9月9日 優(yōu)先權(quán)日2009年9月9日
發(fā)明者李熊, 涂瑩, 王偉峰, 蔣鴻城, 裴旭斌, 賀燕, 郁春雷 申請人:浙江省電力公司