數(shù)據(jù)庫(kù)連接池概況與關(guān)鍵部分論文
一、數(shù)據(jù)庫(kù)連接池基本概念及工作原理
數(shù)據(jù)庫(kù)連接池作為一種將鏈接作為資源管理的實(shí)體,此資源就是數(shù)據(jù)庫(kù)的連接。連接池的基本思想就是預(yù)先設(shè)立一部分放置于內(nèi)存中的固定對(duì)象以備使用。而建立一個(gè)數(shù)據(jù)庫(kù)連接池,就可將鏈接發(fā)過去進(jìn)行查詢,從而來獲取結(jié)果。一個(gè)鏈接在生命周期內(nèi)所能處理的查詢數(shù)據(jù)是沒有限制的,通過采用連接池結(jié)束,只需從內(nèi)存中取得而不用反復(fù)的建立。在內(nèi)存中,連接池可對(duì)鏈接進(jìn)行管理,使其利用率提高。
連接池一般使用過程主要有四個(gè)部分:
1、發(fā)送連接請(qǐng)求:連接池將按照發(fā)送請(qǐng)求的順序進(jìn)行排序,并一對(duì)一的對(duì)其配置給他們鏈接的處理對(duì)象。連接池最大的優(yōu)勢(shì)在于可以允許多個(gè)鏈接同時(shí)發(fā)送申請(qǐng),而連接池可以對(duì)其進(jìn)行判斷。
2、對(duì)發(fā)送進(jìn)行連接處理:連接池可以對(duì)列表中的使用和空閑的部分進(jìn)行維護(hù),連接池從其中空閑的部分取出鏈接后歸還鏈接之前,放回使用池,使整個(gè)連接池利用率最大化。
3、取出鏈接環(huán)節(jié):連接池按照上一步的操作將空閑部分的鏈接取出。
4、回收鏈接環(huán)節(jié):當(dāng)請(qǐng)求模塊使用完畢時(shí),將鏈接返回到空閑池。模塊登記鏈接后,鏈接就從使用列表中去除并自動(dòng)回到列表中等待新的請(qǐng)求。
二、數(shù)據(jù)庫(kù)連接池技術(shù)關(guān)鍵部分
1、連接池配置:數(shù)據(jù)庫(kù)連接池需要多少數(shù)量的鏈接這是關(guān)鍵所在,如放少了則整個(gè)循環(huán)受到影響,多了則浪費(fèi)內(nèi)存資源。配置的策略為:首先要根據(jù)硬件系統(tǒng)的配及軟件環(huán)境的應(yīng)用請(qǐng)求而定,最先配置出一個(gè)連接池的數(shù)量及最大配置量的'鏈接數(shù)量,從而來判斷合適的連接數(shù)。
2、并發(fā)控制:在有很多數(shù)量的線程對(duì)共享資源進(jìn)行同時(shí)訪問,則要考慮到線程之間的同步問題,來確保不會(huì)在訪問過程中出現(xiàn)邏輯性錯(cuò)誤。共享資源則為連接池,而要改變連接池的屬性就要對(duì)其進(jìn)行同步化處理。
3、定時(shí)檢測(cè):在連接池自我管理的過程中,通過定時(shí)地對(duì)每個(gè)鏈接對(duì)象的狀態(tài)和連接的數(shù)量來判斷完成的。管理者可以設(shè)置連接池的參數(shù)來管理連接池中的連接最大使用次數(shù)及最大空閑時(shí)間,以此來約束連接池。
4、復(fù)式連接:此種模式在復(fù)用鏈接中較為常見,每個(gè)數(shù)據(jù)庫(kù)連接都保留其引用的數(shù)量,以此來記錄連接使用者的數(shù)量。具體而言,就是采用了使用池和空閑池的技術(shù),空閑池中的鏈接被分配出去之后,就可以采取復(fù)用來計(jì)算最小的鏈接方法。
三、數(shù)據(jù)庫(kù)訪問的過程
用戶由ServletBeans執(zhí)行數(shù)據(jù)庫(kù)的訪問,調(diào)用連接池類ConnectionPool的addTask方法,addTask執(zhí)行過程為:
、耪{(diào)用ThreadPool線程中的getRequesterID以此來得到任務(wù)申請(qǐng)。
、茖(shí)例化查詢?nèi)蝿?wù)QueryTask對(duì)象。
、钦{(diào)用ThreadPool線程池類的addTask將查詢?nèi)蝿?wù)對(duì)象添加到線程池中。
、日{(diào)用ThreadPool線程池類addTAskListener添加任務(wù)完成時(shí)間監(jiān)聽,過程結(jié)束后返回用戶處。
監(jiān)聽者通過調(diào)用查詢信息類SQLInformation對(duì)象的getResult的方法得到查詢數(shù)據(jù),保存在DbInterface類中,用戶通過調(diào)用DBInterface類的getQueryResult方法得到查詢結(jié)果。DbInterface類的用法如下:
⑴建立類對(duì)象。調(diào)用構(gòu)造函數(shù)DBInterface,其中dbCon為連接池對(duì)象,log為日志對(duì)象,thteadPool為線程池對(duì)象。
、茍(zhí)行SQl語句。調(diào)用DBInterface的方法,DBInterface將自動(dòng)SQL添加到線程中,執(zhí)行完SQL線程語句將結(jié)果和異常傳遞給DBInterface類。
、钦{(diào)用DBInterface的方法getQueryResult和hasNextQueryResult得到查詢結(jié)果。
、热邕\(yùn)行出現(xiàn)異常,通過DBInterface的方法getQueryResult和hasNextQueryResult得到異常情況。
【數(shù)據(jù)庫(kù)連接池概況與關(guān)鍵部分論文】相關(guān)文章:
proxool數(shù)據(jù)庫(kù)連接池配置 -電腦資料01-01
關(guān)于移動(dòng)數(shù)據(jù)庫(kù)關(guān)鍵技術(shù)論文11-27
C語言數(shù)據(jù)庫(kù)連接池:libzdb -電腦資料01-01
Tomcat5的數(shù)據(jù)庫(kù)連接池配置 -電腦資料01-01
tomcat 6.0配置oracle數(shù)據(jù)庫(kù)連接池 -電腦資料01-01
ORACLE數(shù)據(jù)庫(kù)的部分試題01-01
基于java多線程WebGIS矢量數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)07-05
poco c++框架庫(kù)應(yīng)用:數(shù)據(jù)庫(kù)的連接池 -電腦資料01-01
寫好論文的關(guān)鍵02-10