1、在資料庫端確認版本:
sql> select product,version from product_component_version where product like 『%database%』;
product version
oracle database 11g enterprise edition 11.2.0.4.0
2、檢視現有連線池情況,oracle 11g有乙個預設的連線池物件,通過 dba_cpool_info 可以看到連線池資訊:
sql> col connection_pool format a30
sql> select connection_pool,status,minsize,maxsize from dba_cpool_info;
connection_pool status minsize maxsize
sys_default_connection_pool inactive 4 40
sql>
預設連線池:sys_default_connection_pool,狀態是inactive。
3、使用dbms_connection_pool包,啟動連線池:
sql> exec dbms_connection_pool.start_pool();
pl/sql procedure successfully completed.
sql>
4、檢視連線池狀態:
sql> select connection_pool,status,minsize,maxsize from dba_cpool_info;
connection_pool status minsize maxsize
sys_default_connection_pool active 4 40
sql>
檢視程序情況:
[oracle@vm_0_4_centos ~]$ ps -ef|grep ora_n
oracle 14896 1 0 23:06 ? 00:00:00 ora_n000_xkdb
ora_n000_sid 就是connection broker程序,負責連線管理。
[oracle@vm_0_4_centos ~]$ ps -ef|grep ora_l
oracle 14898 1 0 23:06 ? 00:00:00 ora_l000_xkdb
oracle 14900 1 0 23:06 ? 00:00:00 ora_l001_xkdb
oracle 14902 1 0 23:06 ? 00:00:00 ora_l002_xkdb
oracle 14904 1 0 23:06 ? 00:00:00 ora_l003_xkdb
ora_l00x_sid 是連線池中的連線的server process,初始啟動個數由minsize引數決定
5、應用端tns配置:
xkdbdrcp =
(description =
(address_list =
(address = (protocol = tcp)(host = 192.168.0.1)(port = 1521))
) (connect_data =
(server = pooled) –將常見的server = dedicated修改為server = pooled,表明連線使用連線池;
(service_name = xkdb) ) )
而後通過user/passwd@tns即可使用連線池連線資料庫。
6、跟蹤會話的連線情況:
select pname, spid, username, program from vpr
oces
swhe
read
drin
(sel
ectp
addr
from
v pro
cess
wher
eadd
rin(
sele
ctpa
ddrf
romv
session where sid = :1);
檢視程序情況和使用連線池的程序名稱
一旦連線數超過了minsize,就會繼續建立新的連線池連線供使用。
如何用Oracle自帶的連線池 JDBC
以下只是 片斷,有需要的話自己調整一下 其他資料庫廠商提供的驅動也都會有類似的功能,思路也是一致的,可以參照驅動程式本身的api文件。import oracle.jdbc.pool.oracleconnectionpooldatasource ocpds new oracleconnectionpo...
Mybatis自帶連線池原始碼解析
poolmaximumactiveconnections 連線池最大活躍連線數,預設為10個。poolmaximumidleconnections 連線池最大空閒連線數,預設為5個。poolmaximumcheckouttime 最大可 時間,當活躍連線數達到上限時,如果此時有連線請求,則會檢查當前...
mysql連線池 順序 Mysql 連線池
通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...