OCI編程高級(jí)篇(十八) OCI連接池概念
訪問www.tomcoding.com網(wǎng)站,學(xué)習(xí)Oracle內(nèi)部數(shù)據(jù)結(jié)構(gòu),詳細(xì)文檔說明,下載Oracle的exp/imp,DUL,logminer,ASM工具的源代碼,學(xué)習(xí)高技術(shù)含量的內(nèi)容。
數(shù)據(jù)庫連接池已經(jīng)不是新概念了,它以有限的連接讓外部更多的客戶來訪問數(shù)據(jù)庫,一般用于中間服務(wù)器中,OCI也有連接池的概念。OCI的連接池是由OCI自己管理的,不需要應(yīng)用干預(yù),程序通過函數(shù)從連接池中得到一個(gè)會(huì)話,通過會(huì)話操作數(shù)據(jù)庫,然后通過函數(shù)釋放會(huì)話,會(huì)話被連接池回收,供給其他訪問使用。
OCI的連接池也是有局限性的,由于連接池在進(jìn)程中創(chuàng)建,所以連接池中的會(huì)話只能本進(jìn)程下的線程才能共享,連接池不能跨進(jìn)程使用。如果要跨進(jìn)程使用,需要用到駐存連接池,它由數(shù)據(jù)庫來管理,需要調(diào)整數(shù)據(jù)庫設(shè)置,在數(shù)據(jù)庫層級(jí)創(chuàng)建連接池。
我們?cè)谶@里討論OCI的連接池,也就是進(jìn)程內(nèi)共享的連接池。使用連接池的步驟如下。
1. 創(chuàng)建OCI環(huán)境句柄,創(chuàng)建錯(cuò)誤句柄。
2. 創(chuàng)建連接池句柄,使用OCI_HTYPE_CPOOL從環(huán)境句柄創(chuàng)建。
3. 創(chuàng)建連接池,使用函數(shù)OCIConnectionPoolCreate()。
4. 各個(gè)線程從連接池得到會(huì)話,使用函數(shù)OCILogon2()或者OCISessionGet()。
5. 線程通過會(huì)話進(jìn)行數(shù)據(jù)庫的DML或查詢操作。
6. 線程操作完數(shù)據(jù)庫,釋放會(huì)話到連接池,使用函數(shù)OCILogoff()或者OCISessionRelease()。
7. 刪除連接池,使用函數(shù)OCIConnectionPoolDestroy()。
8. 釋放連接池句柄。
9. 釋放掉環(huán)境句柄。
下一節(jié)我們介紹用到的函數(shù)原型,寫一個(gè)完整的代碼來演示如何使用連接池。

浙公網(wǎng)安備 33010602011771號(hào)