本發(fā)明涉及數(shù)據(jù)庫(kù)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫(kù)連接池的管理方法、裝置及系統(tǒng)。
背景技術(shù):
數(shù)據(jù)庫(kù)連接池用于分配、管理和釋放數(shù)據(jù)庫(kù)連接,釋放空閑時(shí)間超過(guò)最大空閑時(shí)間的數(shù)據(jù)庫(kù)連接來(lái)避免因?yàn)闆](méi)有釋放數(shù)據(jù)庫(kù)連接而引起的連接遺漏,這項(xiàng)技術(shù)能明顯提高對(duì)數(shù)據(jù)庫(kù)操作的性能。
一般地,在數(shù)據(jù)庫(kù)連接池中初始化多個(gè)數(shù)據(jù)庫(kù)連接,以等待應(yīng)用程序調(diào)用。一個(gè)應(yīng)用程序每次從數(shù)據(jù)庫(kù)連接池中調(diào)取一個(gè)數(shù)據(jù)庫(kù)連接,此時(shí)被調(diào)取的數(shù)據(jù)庫(kù)連接不可被其它應(yīng)用程序調(diào)取,應(yīng)用程序使用完了其調(diào)取的數(shù)據(jù)庫(kù)連接后,將該數(shù)據(jù)庫(kù)連接歸還數(shù)據(jù)庫(kù)連接池。當(dāng)數(shù)據(jù)庫(kù)連接池內(nèi)的數(shù)據(jù)庫(kù)連接全部被調(diào)取時(shí),數(shù)據(jù)庫(kù)連接池創(chuàng)建新的數(shù)據(jù)庫(kù)連接,直到創(chuàng)建的數(shù)據(jù)庫(kù)連接個(gè)數(shù)達(dá)到允許的最大數(shù)據(jù)庫(kù)連接個(gè)數(shù)。
目前,常采用數(shù)據(jù)庫(kù)連接池共享的方式為應(yīng)用程序提供數(shù)據(jù)庫(kù)連接,如圖1所示,為現(xiàn)有多個(gè)應(yīng)用程序共享一個(gè)數(shù)據(jù)庫(kù)連接池的示意圖,此時(shí)數(shù)據(jù)庫(kù)連接池稱(chēng)為共享數(shù)據(jù)庫(kù)連接池,共享數(shù)據(jù)庫(kù)連接池安裝在一個(gè)jvm(java虛擬機(jī)),每個(gè)應(yīng)用程序分別安裝在不同的jvm,各個(gè)應(yīng)用程序與共享數(shù)據(jù)庫(kù)連接池分別安裝在不同的jvm中,此時(shí),任一應(yīng)用程序調(diào)取共享數(shù)據(jù)庫(kù)連接池中的數(shù)據(jù)庫(kù)連接時(shí),需要通過(guò)特定的協(xié)議和接口,與共享數(shù)據(jù)庫(kù)連接池通信。
但是,應(yīng)用程序通過(guò)協(xié)議或者接口的方式來(lái)與共享數(shù)據(jù)庫(kù)連接池建立連接,從而達(dá)到訪問(wèn)數(shù)據(jù)庫(kù)的目的,這勢(shì)必會(huì)影響應(yīng)用程序與數(shù)據(jù)庫(kù)之間連接的響應(yīng)速度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種數(shù)據(jù)庫(kù)連接池的管理方法、裝置及系統(tǒng),用以解決現(xiàn)有技術(shù)中的應(yīng)用程序通過(guò)協(xié)議或者接口的方式來(lái)與共享數(shù)據(jù)庫(kù)連接池建立連接,而帶來(lái)的影響應(yīng)用程序與數(shù)據(jù)庫(kù)之間連接的響應(yīng)速度的問(wèn)題。
一種數(shù)據(jù)庫(kù)連接池的管理方法,包括:
接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者osgi組件的形式預(yù)先部署在同一osgi框架中;
判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
如果是,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件;
如果否,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
所述方法中,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,具體包括:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;并
將得到的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,所述數(shù)據(jù)庫(kù)連接池的引用次數(shù)是指該數(shù)據(jù)庫(kù)連接池在被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序組件的次數(shù)。
本發(fā)明實(shí)施例,通過(guò)在注冊(cè)表中注冊(cè)訪問(wèn)數(shù)據(jù)庫(kù)的信息實(shí)現(xiàn)建立數(shù)據(jù)庫(kù)連接池,并可以實(shí)時(shí)記錄該數(shù)據(jù)庫(kù)連接池被分配給應(yīng)用程序組件的次數(shù),從而便于維護(hù)共享數(shù)據(jù)庫(kù)連接池組件中的數(shù)據(jù)庫(kù)連接池。
所述方法中,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中還攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則,確定將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件后,該方法進(jìn)一步包括:
將所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
本發(fā)明實(shí)施例將應(yīng)用程序組件的標(biāo)識(shí)與訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)存儲(chǔ)到連接記錄表,能夠?yàn)楣蚕頂?shù)據(jù)庫(kù)連接池組件的維護(hù)提供前提。
所述方法,進(jìn)一步包括:
確定將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件之后,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的初始值為0。
本發(fā)明實(shí)施例,數(shù)據(jù)庫(kù)連接池每被分配一次,該數(shù)據(jù)庫(kù)連接池的引用次數(shù)就加一。
所述方法,還包括:
監(jiān)聽(tīng)到所述應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息時(shí),將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1;
判斷所述注冊(cè)表中所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)是否為0;
如果是,刪除所述連接記錄表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除所述注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù);
如果否,刪除所述連接記錄表中,對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
本發(fā)明實(shí)施例,既能夠節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源,還能夠達(dá)到實(shí)時(shí)更新注冊(cè)表和連接記錄表的目的,從而實(shí)現(xiàn)對(duì)共享數(shù)據(jù)庫(kù)連接池組件的維護(hù)。
所述方法中,所述釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息中攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1,具體包括:
根據(jù)所述應(yīng)用程序組件的標(biāo)識(shí),從所述連接記錄表中查詢(xún)所述應(yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息;
根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從所述注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的引用次數(shù),并將查詢(xún)到的引用次數(shù)減1。
本發(fā)明實(shí)施例,通過(guò)釋放數(shù)據(jù)庫(kù)連接池消息中的應(yīng)用程序組件標(biāo)識(shí)、連接記錄表以及注冊(cè)表,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)連接池組件中的數(shù)據(jù)庫(kù)連接池的更新。
所述方法中,判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,具體包括:
查詢(xún)所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表或者連接記錄表中是否保存有所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息;
如果是,確定所述共享數(shù)據(jù)庫(kù)連接池組件中保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
如果否,確定所述共享數(shù)據(jù)庫(kù)連接池組件中未保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
本發(fā)明實(shí)施例可通過(guò)判斷注冊(cè)表或者連接記錄表中是否保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,確定共享數(shù)據(jù)庫(kù)連接池組件中是否保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
本發(fā)明還提供一種數(shù)據(jù)庫(kù)連接池的管理裝置,包括:
接收單元,用于接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者osgi組件的形式預(yù)先部署在同一osgi框架中;
判斷單元,用于判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
分配單元,用于在所述判斷單元判斷是的情況下,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件;
建立單元,用于在所述判斷單元判斷否的情況下,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
所述裝置中,所述建立單元在根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池時(shí),具體用于:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;并
將得到的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,所述數(shù)據(jù)庫(kù)連接池的引用次數(shù)是指該數(shù)據(jù)庫(kù)連接池在被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序組件的次數(shù)。
所述裝置,還包括:
存儲(chǔ)單元,用于在所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中還攜帶所述應(yīng)用程序組件的標(biāo)識(shí),并確定將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件后,將所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
所述裝置,進(jìn)一步包括:
監(jiān)控單元,用于確定將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件之后,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的初始值為0;
監(jiān)聽(tīng)到所述應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息時(shí),將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1;
判斷所述注冊(cè)表中所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)是否為0;
如果是,刪除所述連接記錄表中存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除所述注冊(cè)表中存儲(chǔ)的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及所述應(yīng)用程序組件對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù);
如果否,刪除所述連接記錄表中,所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
所述裝置,所述釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息中攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則所述監(jiān)控單元在將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1時(shí),具體用于:
根據(jù)所述應(yīng)用程序組件的標(biāo)識(shí),從所述連接記錄表中查詢(xún)所述應(yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息;
根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從所述注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的引用次數(shù),并將查詢(xún)到的引用次數(shù)減1。
所述裝置中,所述判斷單元具體用于:
查詢(xún)所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表或者連接記錄表中是否保存有所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息;
如果是,確定所述共享數(shù)據(jù)庫(kù)連接池組件中保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
如果否,確定所述共享數(shù)據(jù)庫(kù)連接池組件中未保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
本發(fā)明還提供一種數(shù)據(jù)庫(kù)連接池的管理系統(tǒng),包括:
應(yīng)用程序組件,用于向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者osgi組件的形式預(yù)先部署在同一osgi框架中;
共享數(shù)據(jù)庫(kù)連接池組件,用于接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;如果是,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件;如果否,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
利用本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法、裝置及系統(tǒng),具有以下有益效果:
通過(guò)在同一jvm中搭建osgi框架,將應(yīng)用程序以osgi組件的形式部署在osgi框架中,并在osgi框架中部署共享數(shù)據(jù)庫(kù)連接池組件,在該共享數(shù)據(jù)庫(kù)連接池組件中,根據(jù)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息建立數(shù)據(jù)庫(kù)連接池,當(dāng)不同應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息相同時(shí),可實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)連接池的共享,可以有效避免數(shù)據(jù)庫(kù)連接池資源的浪費(fèi),由于應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件都為osgi框架中的osgi組件,應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件之間通過(guò)服務(wù)的方式進(jìn)行交互,從而可以有效的節(jié)省開(kāi)發(fā)資源。此外,本發(fā)明實(shí)施例使得共享數(shù)據(jù)庫(kù)連接池組件與各個(gè)應(yīng)用程序組件之間通過(guò)服務(wù)的方式通信,從而能夠在同一jvm中各個(gè)應(yīng)用程序組件共享一個(gè)數(shù)據(jù)庫(kù)連接池組件,相比于現(xiàn)有技術(shù)的位于不同jvm中的應(yīng)用程序通過(guò)協(xié)議或者接口的方式來(lái)與另一jvm下的共享數(shù)據(jù)庫(kù)連接池通信的方式,在一定程度上提高了應(yīng)用程序與數(shù)據(jù)庫(kù)連接池建立連接的速度,從而在一定程度上提高了應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的速度,并提高了應(yīng)用程序與數(shù)據(jù)庫(kù)之間連接的響應(yīng)速度。
附圖說(shuō)明
圖1為現(xiàn)有技術(shù)提供的多個(gè)應(yīng)用程序共享數(shù)據(jù)庫(kù)連接池的示意圖;
圖2為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法流程圖;
圖3為本發(fā)明實(shí)施例提供的多個(gè)應(yīng)用程序組件與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖;
圖4為本發(fā)明實(shí)施例提供的對(duì)共享數(shù)據(jù)庫(kù)連接池組件中的數(shù)據(jù)庫(kù)連接池進(jìn)行維護(hù)的方法流程圖;
圖5為本發(fā)明實(shí)施例提供的將訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1的方法流程圖;
圖6為本發(fā)明實(shí)施例提供的判斷共享數(shù)據(jù)庫(kù)連接池組件中是否保存訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的方法流程圖;
圖7為本發(fā)明實(shí)施例提供的實(shí)施例一的實(shí)施過(guò)程流程圖;
圖8為本發(fā)明實(shí)施例提供的實(shí)施例二的實(shí)施過(guò)程流程圖;
圖9為本發(fā)明實(shí)施例提供的應(yīng)用程序組件與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖;
圖10為本發(fā)明實(shí)施例提供的實(shí)施例三的實(shí)施過(guò)程流程圖;
圖11為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理裝置示意圖之一;
圖12為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理裝置示意圖之二;
圖13為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理裝置示意圖之三。
圖14為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理系統(tǒng)示意圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明提供的數(shù)據(jù)庫(kù)連接池的管理方法、裝置及系統(tǒng)進(jìn)行更詳細(xì)地說(shuō)明。
本發(fā)明實(shí)施例提供一種數(shù)據(jù)庫(kù)連接池的管理方法,如圖2所示,包括:
步驟101,接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以osgi組件的形式預(yù)先部署在同一osgi框架中。
具體的,申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,訪問(wèn)數(shù)據(jù)庫(kù)的信息包括:需要訪問(wèn)的數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類(lèi)標(biāo)識(shí)、url地址、用戶(hù)名和密碼等信息。本發(fā)明實(shí)施例中的應(yīng)用程序組件所要訪問(wèn)的數(shù)據(jù)庫(kù)優(yōu)選為引用關(guān)系型數(shù)據(jù)庫(kù),也可以為其它類(lèi)型的數(shù)據(jù)庫(kù)。引用關(guān)系型數(shù)據(jù)庫(kù)包括oracle、mysql以及其他。具體的,每個(gè)引用關(guān)系型數(shù)據(jù)庫(kù)可對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類(lèi)標(biāo)識(shí)。
一個(gè)共享數(shù)據(jù)庫(kù)連接池組件中可以包括多個(gè)數(shù)據(jù)庫(kù)連接池,接收到應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求時(shí),解析該申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,從而獲取申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶的應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
osgi的英文全稱(chēng)為openservicesgatewayinitiative,中文全稱(chēng)為開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者。預(yù)先在一個(gè)jvm中搭建osgi框架,比如servicemix平臺(tái),并預(yù)先將各個(gè)應(yīng)用程序以osgi組件的形式部署在該osgi框架中,即,本發(fā)明實(shí)施例中的應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件為同一osgi框架中的不同osgi組件,并且,不同的應(yīng)用程序?qū)?yīng)不同的osgi組件,本發(fā)明實(shí)施例中的共享數(shù)據(jù)連接池組件為一個(gè)osgi組件,該共享連接池組件中可包括多個(gè)數(shù)據(jù)庫(kù)連接池。該osgi框架中的每個(gè)應(yīng)用程序組件均可向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,并且,多個(gè)應(yīng)用程序組件可同時(shí)向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求。
osgi框架中,osgi組件之間通過(guò)服務(wù)的方式相互通信,服務(wù)分為發(fā)布服務(wù)和引用服務(wù),本發(fā)明實(shí)施例中應(yīng)用程序組件申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求可以理解為發(fā)布申請(qǐng)數(shù)據(jù)庫(kù)連接池的服務(wù),即可以理解為應(yīng)用程序組件通過(guò)發(fā)布服務(wù)的方式與共享數(shù)據(jù)庫(kù)連接池組件通信;共享數(shù)據(jù)庫(kù)連接池組件引用應(yīng)用程序組件發(fā)布的申請(qǐng)數(shù)據(jù)庫(kù)連接池的服務(wù),即可以理解為共享數(shù)據(jù)庫(kù)連接池組件通過(guò)引用服務(wù)的方式與應(yīng)用程序組件通信。如圖3所示為本發(fā)明實(shí)施例提供的多個(gè)應(yīng)用程序組件以服務(wù)的方式與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖,其中,應(yīng)用程序組件通過(guò)該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池訪問(wèn)圖3中的數(shù)據(jù)庫(kù)。
步驟102,判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,如果是,執(zhí)行步驟103,否則,執(zhí)行步驟104。
具體的,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池即該應(yīng)用程序組件申請(qǐng)的數(shù)據(jù)庫(kù)連接池。如果共享數(shù)據(jù)庫(kù)連接池組件中已經(jīng)保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,將該數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件即可。
本發(fā)明實(shí)施例中的訪問(wèn)數(shù)據(jù)庫(kù)的信息與共享數(shù)據(jù)庫(kù)連接池組件中的數(shù)據(jù)庫(kù)連接池一一對(duì)應(yīng),具體的,如果兩個(gè)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息相同,則這兩個(gè)應(yīng)用程序組件申請(qǐng)的數(shù)據(jù)庫(kù)連接池相同。
其中,針對(duì)每個(gè)應(yīng)用程序組件,確定共享數(shù)據(jù)庫(kù)連接池組件中保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息時(shí),確定該共享數(shù)據(jù)庫(kù)連接池組件中保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,即,確定共享數(shù)據(jù)庫(kù)連接池組件中保存該應(yīng)用程序組件申請(qǐng)的數(shù)據(jù)庫(kù)連接池;否則,確定該共享數(shù)據(jù)庫(kù)連接池組件中未保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
優(yōu)選地,本發(fā)明實(shí)施例共享數(shù)據(jù)庫(kù)連接池組件在初始狀態(tài)為空,即,在未收到任何應(yīng)用程序組件發(fā)送的申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求時(shí),該共享數(shù)據(jù)庫(kù)連接池組件中未保存任何數(shù)據(jù)庫(kù)連接池,當(dāng)然,共享數(shù)據(jù)庫(kù)連接池組件在初始也可預(yù)先保存常見(jiàn)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,這里不做限定。
步驟103,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
步驟104,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
具體的,一個(gè)應(yīng)用程序組件可通過(guò)不同的訪問(wèn)數(shù)據(jù)庫(kù)的信息申請(qǐng)不同的數(shù)據(jù)庫(kù)連接池,并通過(guò)申請(qǐng)的數(shù)據(jù)庫(kù)連接池訪問(wèn)該數(shù)據(jù)庫(kù)連接池對(duì)應(yīng)的數(shù)據(jù)庫(kù),,其中,一條訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)連接池。在為應(yīng)用程序組件分配一個(gè)數(shù)據(jù)庫(kù)連接池后,如果該應(yīng)用程序組件需要再次訪問(wèn)該數(shù)據(jù)庫(kù)連接池,不需再次向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,而是直接通過(guò)已分配的數(shù)據(jù)庫(kù)連接池訪問(wèn)數(shù)據(jù)庫(kù);如果該應(yīng)用程序組件已經(jīng)釋放其已申請(qǐng)的一個(gè)數(shù)據(jù)庫(kù)連接池,則該應(yīng)用程序組件再次訪問(wèn)該數(shù)據(jù)庫(kù)連接池對(duì)應(yīng)的數(shù)據(jù)庫(kù)時(shí),需要向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,以獲取數(shù)據(jù)連接池。即,本發(fā)明實(shí)施例,針對(duì)每個(gè)應(yīng)用程序組件,從該應(yīng)用程序組件成功申請(qǐng)數(shù)據(jù)庫(kù)連接池后,到該應(yīng)用程序組件釋放其申請(qǐng)的數(shù)據(jù)庫(kù)連接池期間,該應(yīng)用程序組件不會(huì)再次向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求。為應(yīng)用程序組件分配數(shù)據(jù)庫(kù)連接池后,應(yīng)用程序組件可通過(guò)該數(shù)據(jù)庫(kù)連接池訪問(wèn)數(shù)據(jù)庫(kù),具體應(yīng)用程序組件通過(guò)該數(shù)據(jù)庫(kù)連接池訪問(wèn)數(shù)據(jù)庫(kù)的方式可參見(jiàn)現(xiàn)有方式,這里不做詳述。
本發(fā)明實(shí)施例的執(zhí)行主體可以為共享數(shù)據(jù)庫(kù)連接池組件,可以為位于共享數(shù)據(jù)庫(kù)連接池組件內(nèi)的模塊,也可以為獨(dú)立于共享數(shù)據(jù)庫(kù)連接池組件的第三方設(shè)備或模塊。確定共享數(shù)據(jù)庫(kù)連接池組件中未保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池時(shí),在共享數(shù)據(jù)庫(kù)連接池組件中建立該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將該新建的數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件。
本發(fā)明實(shí)施例,通過(guò)在同一jvm中搭建osgi框架,將應(yīng)用程序以osgi組件的形式部署在osgi框架中,并在osgi框架中部署共享數(shù)據(jù)庫(kù)連接池組件,在該共享數(shù)據(jù)庫(kù)連接池組件中,根據(jù)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息建立數(shù)據(jù)庫(kù)連接池,當(dāng)不同應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息相同時(shí),可實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池的共享,可以有效避免數(shù)據(jù)庫(kù)連接池資源的浪費(fèi),由于應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件都為osgi框架中的osgi組件,應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件之間通過(guò)服務(wù)的方式進(jìn)行交互,從而可以有效的節(jié)省開(kāi)發(fā)資源。此外,本發(fā)明實(shí)施例使得共享數(shù)據(jù)庫(kù)連接池組件與各個(gè)應(yīng)用程序組件之間通過(guò)服務(wù)的方式通信,從而能夠在同一jvm中各個(gè)應(yīng)用程序組件共享一個(gè)數(shù)據(jù)庫(kù)連接池組件,相比于現(xiàn)有技術(shù)的位于不同jvm中的應(yīng)用程序通過(guò)協(xié)議或者接口的方式來(lái)與另一jvm下的共享數(shù)據(jù)庫(kù)連接池通信的方式,在一定程度上提高了應(yīng)用程序與數(shù)據(jù)庫(kù)連接池建立連接的速度,大概速度能提升十幾倍,從而在一定程度上提高了應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的速度,并提高了應(yīng)用程序與數(shù)據(jù)庫(kù)之間連接的響應(yīng)速度。
本發(fā)明實(shí)施例在osgi框架中部署共享數(shù)據(jù)庫(kù)連接池組件的方式為:1、將osgi形式的共享數(shù)據(jù)庫(kù)連接池組件直接拷貝到servicemix平臺(tái)(一種osgi框架)的熱部署目錄下完成共享數(shù)據(jù)庫(kù)連接池組件的部署;2、借助servicemix平臺(tái)的features命令,完成共享數(shù)據(jù)庫(kù)連接池組件的熱部署。在osgi框架中部署應(yīng)用程序組件的方式與在osgi框架中部署共享數(shù)據(jù)庫(kù)連接池組件的方式相同,這里不做贅述。
優(yōu)選地,步驟104中,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,具體包括:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;并
將得到的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,所述數(shù)據(jù)庫(kù)連接池的引用次數(shù)是指該數(shù)據(jù)庫(kù)連接池在被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序的次數(shù)。
具體的,將應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,即為建立數(shù)據(jù)庫(kù)連接池的過(guò)程,具體通過(guò)將應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息存儲(chǔ)到注冊(cè)表的任一空閑表項(xiàng)中,實(shí)現(xiàn)將應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中。
得到應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池后,將該數(shù)據(jù)庫(kù)連接池的引用次數(shù)與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)存儲(chǔ),并將此時(shí)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)確定為初始值,即,初始建立數(shù)據(jù)庫(kù)連接池時(shí),引用次數(shù)為初始值,本發(fā)明實(shí)施例優(yōu)選將初始值設(shè)定為0,也可以為其它值,這里不做限定。
本發(fā)明實(shí)施例在將得到的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中之后,得到應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息與應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的對(duì)應(yīng)關(guān)系。為應(yīng)用程序組件分配數(shù)據(jù)庫(kù)連接池后,該數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1。如果多個(gè)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息相同,則這多個(gè)應(yīng)用程序組件對(duì)應(yīng)同一數(shù)據(jù)庫(kù)連接池,此時(shí),多個(gè)應(yīng)用程序組件對(duì)應(yīng)注冊(cè)表中的同一條訪問(wèn)數(shù)據(jù)庫(kù)的信息與數(shù)據(jù)庫(kù)連接池的引用次數(shù)的對(duì)應(yīng)關(guān)系,即,本發(fā)明實(shí)施例中,注冊(cè)表中的訪問(wèn)數(shù)據(jù)庫(kù)的信息與數(shù)據(jù)庫(kù)連接池一一對(duì)應(yīng)。
本發(fā)明實(shí)施例,在接收到應(yīng)用程序組件發(fā)送的申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求時(shí),解析申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,得到該請(qǐng)求中攜帶的應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,通過(guò)將應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接池的創(chuàng)建。在建立數(shù)據(jù)庫(kù)連接池后,將該建立的數(shù)據(jù)庫(kù)連接池的引用次數(shù)存儲(chǔ)到注冊(cè)表中,可便于后期對(duì)共享數(shù)據(jù)庫(kù)連接池組件中的共享數(shù)據(jù)庫(kù)連接池的維護(hù)。
進(jìn)一步優(yōu)選地,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中還攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則確定將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件后,進(jìn)一步包括:
將所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
具體的,應(yīng)用程序組件的標(biāo)識(shí)可以為應(yīng)用程序自身的標(biāo)識(shí),也可以為該應(yīng)用程序組件對(duì)應(yīng)的osgi組件的標(biāo)識(shí),這里不做限定。
本發(fā)明實(shí)施例,在建立應(yīng)用程序組件對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池后,進(jìn)一步根據(jù)申請(qǐng)數(shù)據(jù)庫(kù)連接池請(qǐng)求中攜帶的應(yīng)用程序組件的標(biāo)識(shí)以及訪問(wèn)數(shù)據(jù)庫(kù)的信息,將應(yīng)用程序組件的標(biāo)識(shí)與訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)存儲(chǔ)到連接記錄表,能夠?yàn)楣蚕頂?shù)據(jù)庫(kù)連接池組件的維護(hù)提供前提。本發(fā)明實(shí)施例在共享數(shù)據(jù)庫(kù)連接池組件中未保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的場(chǎng)景下,確定建立了應(yīng)用程序組件對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池后實(shí)施。
在共享數(shù)據(jù)庫(kù)連接池組件中保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并且,確定該應(yīng)用程序組件為第一次申請(qǐng)其所申請(qǐng)的數(shù)據(jù)庫(kù)連接池時(shí),該數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,并且將該應(yīng)用程序組件的標(biāo)識(shí)與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
具體的,實(shí)時(shí)記錄各個(gè)數(shù)據(jù)庫(kù)連接池在被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序組件的次數(shù),優(yōu)選地,確定將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件之后,進(jìn)一步包括:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的初始值為0。
具體的,在為應(yīng)用程序組件建立該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池后,為該應(yīng)用程序組件分配建立的數(shù)據(jù)庫(kù)連接池,并將該數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,即,數(shù)據(jù)庫(kù)連接池每被分配一次,該數(shù)據(jù)庫(kù)連接池的引用次數(shù)就加一,具體實(shí)現(xiàn)時(shí),可為每個(gè)數(shù)據(jù)庫(kù)連接池設(shè)置一計(jì)數(shù)器,將該計(jì)數(shù)器的值作為該數(shù)據(jù)庫(kù)連接池的引用次數(shù)。針對(duì)每個(gè)應(yīng)用程序組件,該應(yīng)用程序組件向數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,并且,為該應(yīng)用程序組件分配相應(yīng)的數(shù)據(jù)庫(kù)連接池后,該被分配給應(yīng)用程序組件的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,并且,該應(yīng)用程序組件不會(huì)再次向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)已分配給該應(yīng)用程序組件的數(shù)據(jù)庫(kù)連接池的請(qǐng)求;當(dāng)該應(yīng)用程序組件釋放已分配給該應(yīng)用程序組件的數(shù)據(jù)庫(kù)連接池后,該應(yīng)用程序組件可再次向共享數(shù)據(jù)庫(kù)連接池發(fā)送申請(qǐng)?jiān)摫会尫诺臄?shù)據(jù)庫(kù)連接池的請(qǐng)求。
優(yōu)選地,本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法,如圖4所示,還包括:
步驟201,監(jiān)聽(tīng)到所述應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息時(shí),將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1。
具體的,應(yīng)用程序組件從osgi框架中卸載時(shí),或者應(yīng)用程序組件關(guān)閉時(shí),或者監(jiān)聽(tīng)到應(yīng)用程序組件在一定時(shí)長(zhǎng)內(nèi)未執(zhí)行任何操作時(shí),應(yīng)用程序組件會(huì)發(fā)出釋放其申請(qǐng)的數(shù)據(jù)庫(kù)連接池的消息,本發(fā)明實(shí)施例實(shí)時(shí)監(jiān)聽(tīng)已申請(qǐng)數(shù)據(jù)庫(kù)連接池的應(yīng)用程序組件是否發(fā)出釋放數(shù)據(jù)庫(kù)連接池的消息,如果是,將該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1。其中,優(yōu)選地,設(shè)定應(yīng)用程序組件從osgi框架中卸載時(shí),發(fā)出釋放其申請(qǐng)的數(shù)據(jù)庫(kù)連接池的消息。
步驟202,判斷所述注冊(cè)表中所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)是否為0,如果是,執(zhí)行步驟203,否則,執(zhí)行步驟204。
步驟203,刪除所述連接記錄表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除所述注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)。
具體的,當(dāng)數(shù)據(jù)庫(kù)連接池的引用次數(shù)為0(初始值)時(shí),說(shuō)明該數(shù)據(jù)庫(kù)連接池已經(jīng)沒(méi)有應(yīng)用程序組件在使用,此時(shí),可刪除注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的該數(shù)據(jù)庫(kù)連接池的引用次數(shù)以及該數(shù)據(jù)庫(kù)連接池對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從而達(dá)到從共享數(shù)據(jù)庫(kù)連接池組件中刪除該數(shù)據(jù)庫(kù)連接池的目的,進(jìn)而節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源。當(dāng)應(yīng)用程序組件釋放其申請(qǐng)的數(shù)據(jù)庫(kù)連接池后,從連接記錄表中刪除該應(yīng)用程序組件的標(biāo)識(shí)以及該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,從而節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源。
步驟204,刪除所述連接記錄表中,對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
具體的,當(dāng)應(yīng)用程序組件所申請(qǐng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)不為0時(shí),只刪除連接記錄表中對(duì)應(yīng)存儲(chǔ)的該應(yīng)用程序組件的標(biāo)識(shí)以及該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,從而節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源。
本發(fā)明實(shí)施例,既能夠節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源,還能夠達(dá)到實(shí)時(shí)更新注冊(cè)表和連接記錄表的目的,從而實(shí)現(xiàn)對(duì)共享數(shù)據(jù)庫(kù)連接池組件的維護(hù)。
在應(yīng)用程序組件從osgi框架中卸載時(shí),發(fā)出釋放其申請(qǐng)的數(shù)據(jù)庫(kù)連接池的消息的場(chǎng)景下,優(yōu)選地,所述釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息中攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則步驟201中,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1,如圖5所示,具體包括:
步驟301,根據(jù)所述應(yīng)用程序組件的標(biāo)識(shí),從所述連接記錄表中查詢(xún)所述應(yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息。
步驟302,根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從所述注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的引用次數(shù),并將查詢(xún)到的引用次數(shù)減1。
由于連接記錄表中記錄了已經(jīng)被分配數(shù)據(jù)庫(kù)連接池的應(yīng)用程序組件的標(biāo)識(shí),因此,當(dāng)釋放數(shù)據(jù)庫(kù)連接池的消息中攜帶應(yīng)用程序組件的標(biāo)識(shí)時(shí),可通過(guò)解析獲取該消息中的應(yīng)用程序組件的標(biāo)識(shí),從而確定釋放數(shù)據(jù)庫(kù)連接池的應(yīng)用程序組件。根據(jù)該釋放數(shù)據(jù)庫(kù)連接池的應(yīng)用程序組件的標(biāo)識(shí),從連接記錄表中查詢(xún)?cè)搼?yīng)用應(yīng)用程序組件標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的基本信息;再根據(jù)該訪問(wèn)數(shù)據(jù)庫(kù)的信息,查詢(xún)注冊(cè)表中,該訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),并將查詢(xún)到的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1。
本發(fā)明實(shí)施例,通過(guò)釋放數(shù)據(jù)庫(kù)連接池消息中的應(yīng)用程序組件標(biāo)識(shí)、連接記錄表以及注冊(cè)表,實(shí)現(xiàn)了對(duì)共享數(shù)據(jù)庫(kù)連接池組件中的數(shù)據(jù)庫(kù)連接池的更新。
本發(fā)明實(shí)施例中的應(yīng)用程序組件釋放數(shù)據(jù)庫(kù)連接池的消息中還可以攜帶該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,此時(shí),從注冊(cè)表中查詢(xún)?cè)撓⒅袛y帶的應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),并將查詢(xún)到的次數(shù)減1。
優(yōu)選地,步驟102,判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,如圖6所示,具體包括:
步驟401,查詢(xún)所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表或者連接記錄表中是否保存有所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,如果是,執(zhí)行步驟402,否則,執(zhí)行步驟403。
步驟402,確定所述共享數(shù)據(jù)庫(kù)連接池組件中保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
步驟403,確定所述共享數(shù)據(jù)庫(kù)連接池組件中未保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
具體的,本發(fā)明實(shí)施例可通過(guò)判斷注冊(cè)表或者連接記錄表中是否保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,確定共享數(shù)據(jù)庫(kù)連接池組件中是否保存應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
下面結(jié)合具體實(shí)施例說(shuō)明本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法。
實(shí)施例一
如圖7所示,本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法的其中一個(gè)具體實(shí)施例,包括:
步驟501,共享數(shù)據(jù)庫(kù)連接池組件接收osgi框架中的應(yīng)用程序組件以服務(wù)的方式發(fā)送的申請(qǐng)數(shù)據(jù)庫(kù)連接的請(qǐng)求,該請(qǐng)求中攜帶該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
步驟502,共享數(shù)據(jù)庫(kù)連接池組件判斷共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中是否保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,如果是,執(zhí)行步驟503,否則,執(zhí)行步驟504。
步驟503,共享數(shù)據(jù)庫(kù)連接池組件確定保存了該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將該數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件。
步驟504,共享數(shù)據(jù)庫(kù)連接池組件確定未保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并,將得到的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中。
步驟505,共享數(shù)據(jù)庫(kù)連接池組件將得到的該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件。
步驟506,共享數(shù)據(jù)庫(kù)連接池組件將該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1。
實(shí)施例二
如圖8所示,本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法的其中一個(gè)具體實(shí)施例,包括:
步驟601,共享數(shù)據(jù)庫(kù)連接池組件接收osgi框架中的應(yīng)用程序組件以服務(wù)的方式發(fā)送的申請(qǐng)數(shù)據(jù)庫(kù)連接的請(qǐng)求,該請(qǐng)求中攜帶該應(yīng)用程序組件的標(biāo)識(shí)以及該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
步驟602,共享數(shù)據(jù)庫(kù)連接池組件判斷共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中是否保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,如果是,執(zhí)行步驟603,否則,執(zhí)行步驟604。
步驟603,共享數(shù)據(jù)庫(kù)連接池組件確定保存了該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將該數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件。
步驟604,共享數(shù)據(jù)庫(kù)連接池組件確定未保存該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將得到的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中。
步驟605,共享數(shù)據(jù)庫(kù)連接池組件將建立的該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給該應(yīng)用程序組件。
步驟606,共享數(shù)據(jù)庫(kù)連接池組件將該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,將該應(yīng)用程序組件的標(biāo)識(shí)與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
圖9為本發(fā)明實(shí)施例提供的應(yīng)用程序組件與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖,圖9只是一種示例,只舉出一個(gè)應(yīng)用程序組件與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖,本發(fā)明實(shí)施例可以是多個(gè)應(yīng)用程序組件同時(shí)從圖9的共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池。
實(shí)施例三
如圖10所示,為本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法中對(duì)共享數(shù)據(jù)庫(kù)連接池組件進(jìn)行維護(hù)的方法,包括:
步驟701,共享數(shù)據(jù)庫(kù)連接池組件判斷是否監(jiān)聽(tīng)到應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息,如果是,執(zhí)行步驟702,否則,執(zhí)行步驟701。
步驟702,共享數(shù)據(jù)庫(kù)連接池組件解析監(jiān)聽(tīng)到的消息中攜帶的應(yīng)用程序組件的標(biāo)識(shí)。
步驟703,共享數(shù)據(jù)庫(kù)連接池組件根據(jù)解析到的應(yīng)用程序組件的標(biāo)識(shí),從連接記錄表中查詢(xún)?cè)搼?yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息。
步驟704,共享數(shù)據(jù)庫(kù)連接池組件根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),并將查詢(xún)到的該訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1,得到更新后的引用次數(shù)。
步驟705,共享數(shù)據(jù)庫(kù)連接池組件判斷更新后引用次數(shù)是否為0,如果是,執(zhí)行步驟706,否則,執(zhí)行步驟707。
步驟706,刪除連接記錄表中對(duì)應(yīng)存儲(chǔ)的該應(yīng)用程序組件的標(biāo)識(shí)以及該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及該應(yīng)用程序組件對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)。
步驟707,刪除連接記錄表中,對(duì)應(yīng)存儲(chǔ)的該應(yīng)用程序組件的標(biāo)識(shí)與該應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
應(yīng)用程序組件與共享數(shù)據(jù)庫(kù)連接池組件的連接示意圖可參見(jiàn)圖9。
具體的,針對(duì)每個(gè)數(shù)據(jù)庫(kù)連接池,確定該數(shù)據(jù)庫(kù)連接池的引用次數(shù)為0時(shí),從共享數(shù)據(jù)庫(kù)連接池組件中刪除與該數(shù)據(jù)庫(kù)連接池對(duì)應(yīng)的所有的信息,從而節(jié)省共享數(shù)據(jù)庫(kù)連接池組件的資源。
基于與本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)庫(kù)連接池的管理裝置,如圖11所示,包括:
接收單元801,用于接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者osgi組件的形式預(yù)先部署在同一osgi框架中;
判斷單元802,用于判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
分配單元803,用于在所述判斷單元判斷是的情況下,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件;
建立單元804,用于在所述判斷單元判斷否的情況下,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
優(yōu)選地,所述裝置中,所述建立單元在根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池時(shí),具體用于:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;并
將得到的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,所述數(shù)據(jù)庫(kù)連接池的引用次數(shù)是指該數(shù)據(jù)庫(kù)連接池在被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序組件的次數(shù)。
優(yōu)選地,如圖12所示,所述裝置,還包括:
存儲(chǔ)單元805,用于在所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中還攜帶所述應(yīng)用程序組件的標(biāo)識(shí),并確定將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件后,將所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
優(yōu)選地,如圖13所示,所述裝置,進(jìn)一步包括:
監(jiān)控單元806,用于確定將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件之后,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的初始值為0;
監(jiān)聽(tīng)到所述應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息時(shí),將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1;
判斷所述注冊(cè)表中所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)是否為0;
如果是,刪除所述連接記錄表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除所述注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù);
如果否,刪除所述連接記錄表中,對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
優(yōu)選地,所述釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息中攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則所述監(jiān)控單元在將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1時(shí),具體用于:
根據(jù)所述應(yīng)用程序組件的標(biāo)識(shí),從所述連接記錄表中查詢(xún)所述應(yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息;
根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從所述注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的引用次數(shù),并將查詢(xún)到的引用次數(shù)減1。
優(yōu)選地,所述裝置中,所述判斷單元具體用于:
查詢(xún)所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表或者連接記錄表中是否保存有所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息;
如果是,確定所述共享數(shù)據(jù)庫(kù)連接池組件中保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
如果否,確定所述共享數(shù)據(jù)庫(kù)連接池組件中未保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
基于與本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)庫(kù)連接池的管理系統(tǒng),如圖14所示,包括:
應(yīng)用程序組件901,用于向共享數(shù)據(jù)庫(kù)連接池組件發(fā)送申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中攜帶所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,所述應(yīng)用程序組件以及所述共享數(shù)據(jù)庫(kù)連接池組件分別以開(kāi)放服務(wù)網(wǎng)關(guān)發(fā)起者osgi組件的形式預(yù)先部署在同一osgi框架中;
共享數(shù)據(jù)庫(kù)連接池組件902,用于接收應(yīng)用程序組件發(fā)送的從共享數(shù)據(jù)庫(kù)連接池組件中申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求,判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;如果是,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件;如果否,根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池,并將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件。
優(yōu)選地,所述系統(tǒng)中,所述共享數(shù)據(jù)庫(kù)連接池組件在根據(jù)所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,在所述共享數(shù)據(jù)庫(kù)連接池組件中建立所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池時(shí),具體用于:
將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息注冊(cè)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,得到所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;并
將得到的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù),與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表中,所述數(shù)據(jù)庫(kù)連接池的引用次數(shù)是指該數(shù)據(jù)庫(kù)連接池被應(yīng)用程序組件申請(qǐng)后被分配給應(yīng)用程序組件的次數(shù)。
優(yōu)選地,所述系統(tǒng)中,所述共享數(shù)據(jù)庫(kù)連接池組件,還用于:
在所述申請(qǐng)數(shù)據(jù)庫(kù)連接池的請(qǐng)求中還攜帶所述應(yīng)用程序組件的標(biāo)識(shí),并確定將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件后,將所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,對(duì)應(yīng)存儲(chǔ)到所述共享數(shù)據(jù)庫(kù)連接池組件的連接記錄表中。
優(yōu)選地,所述系統(tǒng)中,所述共享數(shù)據(jù)庫(kù)連接池組件進(jìn)一步用于:
確定將建立的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池分配給所述應(yīng)用程序組件之后,將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)加1,所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)的初始值為0。
優(yōu)選地,所述系統(tǒng)中,所述共享數(shù)據(jù)庫(kù)連接池組件還用于:
監(jiān)聽(tīng)到所述應(yīng)用程序組件釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息時(shí),將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1;
判斷所述注冊(cè)表中所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)是否為0;
如果是,刪除所述連接記錄表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息,并刪除所述注冊(cè)表中對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息以及所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù);
如果否,刪除所述連接記錄表中,對(duì)應(yīng)存儲(chǔ)的所述應(yīng)用程序組件的標(biāo)識(shí)與所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息。
優(yōu)選地,所述釋放所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的消息中攜帶所述應(yīng)用程序組件的標(biāo)識(shí),則所述共享數(shù)據(jù)庫(kù)連接池組件在將所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池的引用次數(shù)減1時(shí),具體用于:
根據(jù)所述應(yīng)用程序組件的標(biāo)識(shí),從所述連接記錄表中查詢(xún)所述應(yīng)用程序組件的標(biāo)識(shí)對(duì)應(yīng)的訪問(wèn)數(shù)據(jù)庫(kù)的信息;
根據(jù)查詢(xún)到的訪問(wèn)數(shù)據(jù)庫(kù)的信息,從所述注冊(cè)表中查詢(xún)?cè)撛L問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的引用次數(shù),并將查詢(xún)到的引用次數(shù)減1。
優(yōu)選地,所述系統(tǒng)中,所述所述共享數(shù)據(jù)庫(kù)連接池組件在判斷所述共享數(shù)據(jù)庫(kù)連接池組件中是否保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池時(shí),具體用于:
查詢(xún)所述共享數(shù)據(jù)庫(kù)連接池組件的注冊(cè)表或者連接記錄表中是否保存有所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息;
如果是,確定所述共享數(shù)據(jù)庫(kù)連接池組件中保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池;
如果否,確定所述共享數(shù)據(jù)庫(kù)連接池組件中未保存所述應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息對(duì)應(yīng)的數(shù)據(jù)庫(kù)連接池。
利用本發(fā)明實(shí)施例提供的數(shù)據(jù)庫(kù)連接池的管理方法、裝置及系統(tǒng),具有以下有益效果:通過(guò)在同一jvm中搭建osgi框架,將應(yīng)用程序以osgi組件的形式部署在osgi框架中,并在osgi框架中部署共享數(shù)據(jù)庫(kù)連接池組件,在該共享數(shù)據(jù)庫(kù)連接池組件中,根據(jù)應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息建立數(shù)據(jù)庫(kù)連接池,當(dāng)不同應(yīng)用程序組件訪問(wèn)數(shù)據(jù)庫(kù)的信息相同時(shí),可實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)連接池的共享,可以有效避免數(shù)據(jù)庫(kù)連接池資源的浪費(fèi),由于應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件都為osgi框架中的osgi組件,應(yīng)用程序組件和共享數(shù)據(jù)庫(kù)連接池組件之間通過(guò)服務(wù)的方式進(jìn)行交互,從而可以有效的節(jié)省開(kāi)發(fā)資源。此外,本發(fā)明實(shí)施例使得共享數(shù)據(jù)庫(kù)連接池組件與各個(gè)應(yīng)用程序組件之間通過(guò)服務(wù)的方式通信,從而能夠在同一jvm中各個(gè)應(yīng)用程序組件共享一個(gè)數(shù)據(jù)庫(kù)連接池組件,相比于現(xiàn)有技術(shù)的位于不同jvm中的應(yīng)用程序通過(guò)協(xié)議或者接口的方式來(lái)與另一jvm下的共享數(shù)據(jù)庫(kù)連接池通信的方式,在一定程度上提高了應(yīng)用程序與數(shù)據(jù)庫(kù)連接池建立連接的速度,從而在一定程度上提高了應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù)的速度,并提高了應(yīng)用程序與數(shù)據(jù)庫(kù)之間連接的響應(yīng)速度。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專(zhuān)用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。