淺析ServletQueryForConnPool測試
一.測試用例ServletQueryForConnPool版本
1.結(jié)構(gòu)圖
2.代碼實(shí)現(xiàn)結(jié)構(gòu)
3.運(yùn)行時(shí)序圖
4.測試運(yùn)行情況說明
4.1 數(shù)據(jù)庫連接和數(shù)據(jù)庫游標(biāo)占用可能比較大
由于數(shù)據(jù)庫的查詢及其分頁處理是直接使用JDBC的,并在分頁中是使用RseultSet的查詢結(jié)果集-游標(biāo)形式實(shí)現(xiàn)的,并且每個(gè)客戶對(duì)應(yīng)一個(gè)會(huì)話,每個(gè)會(huì)話對(duì)應(yīng)一個(gè)數(shù)據(jù)庫連接和一個(gè)結(jié)果集(游標(biāo)),數(shù)據(jù)庫連接和游標(biāo)是在會(huì)話終止時(shí)才釋放的。因此在多個(gè)客戶的請(qǐng)求過程中,可能對(duì)數(shù)據(jù)庫的訪問資源(數(shù)據(jù)庫連接和用于數(shù)據(jù)操作的游標(biāo))占用比較大。
因此數(shù)據(jù)庫訪問及其數(shù)據(jù)庫的處理可能是個(gè)瓶頸。
4.2 資源沒有釋放的問題
會(huì)話對(duì)應(yīng)的數(shù)據(jù)庫連接和游標(biāo)可能在會(huì)話終止時(shí)沒有釋放。
為了更好的體現(xiàn)出使用Web容器數(shù)據(jù)庫連接池的優(yōu)點(diǎn),應(yīng)該合理的設(shè)置連接池中連接對(duì)象的“非活動(dòng)超時(shí)時(shí)間”,建議次值和Servlet對(duì)象的會(huì)話超時(shí)時(shí)間長度一直。
5.此測試用例操作說明
5.1 部署的包的位置:
ServletQueryForConnPool.war
5.2 部署
1.通過Weblogic 的控制臺(tái)工具部署此包
2.相關(guān)的參數(shù)請(qǐng)看ServletQueryForConnPool.war包中的配置文件web.xml中相應(yīng)的servlet配置參數(shù)
5.3 測試URL
http://server/:port/WebAppName
即:
http://web/服務(wù)器名:端口/Servlet部署的應(yīng)用程序名
二.測試用例ServletQueryForConnPool_cache 版本
1.結(jié)構(gòu)圖
和“一:測試用例3”相同
2.代碼實(shí)現(xiàn)結(jié)構(gòu)
3.運(yùn)行時(shí)序
說明:使用第四種“緩存一次SQL查詢的結(jié)果集”的分頁面查詢技術(shù),即一次SQL查詢,把從數(shù)據(jù)庫查詢出來的結(jié)果保存到會(huì)話中,以后的客戶分頁查詢操作都從此緩存中取得。
4.測試運(yùn)行情況說明
由于使用的是緩存結(jié)果集的方式,對(duì)Web容器服務(wù)器的內(nèi)存要求比較高,可能在測試過程中,Web容器服務(wù)器因內(nèi)存問題而影響整個(gè)系統(tǒng)的響應(yīng)性能。
5.此測試用例操作說明
5.1 部署的包的位置:
ServletQueryForConnPool_cache.war
【編輯推薦】