.Net與Oracle的資料庫連線
ODBC
New version:
"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
Old version:
"Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;"
OLE DB, OleDbConnection (.NET)
Standard security:
"Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
This one's from Microsoft, the following are from Oracle
Standard Security:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
Trusted Connection:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"
OracleConnection (.NET)
Standard:
"Data Source=MyOracleDB;Integrated Security=yes;"
This one works only with Oracle 8i release 3 or later
Specifying username and password:
"Data Source=MyOracleDB;User Id=username;Password=passwd;Integrated Security=no;"
This one works only with Oracle 8i release 3 or later
Declare the OracleConnection:
C#:
using System.Data.OracleClient;
OracleConnection oOracleConn = new OracleConnection();
oOracleConn.ConnectionString = "my connection string";
oOracleConn.Open();
VB.NET:
Imports System.Data.OracleClient
Dim oOracleConn As OracleConnection = New OracleConnection()
oOracleConn.ConnectionString = "my connection string"
oOracleConn.Open()
Core Labs OraDirect (.NET)
Standard:
"User ID=scott; Password=tiger; Host=ora; Pooling=true; Min Pool Size=0;Max Pool Size=100; Connection Lifetime=0"
Data Shape
MS Data Shape:
"Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;user id=username;password=mypw"
開發人員應當注意不要依賴垃圾回收機制去釋放資料庫連線,因為當引數超出作用域時,資料庫連線並沒有得必要的關閉,這種資料庫資源洩漏將導致建立新連線時丟擲連線錯誤。
建立資料庫連線池
當開啟一個資料庫連線時,一個資料庫連線池也就建立了。資料庫連線池的建立與資料庫連線字串精確的相關(包括空格、大小寫)。所有的連線池是根據連線字串來區分的。在建立一個新的資料庫連線時,如果連線字串不完全相同,將建立不同的連線池。
一旦資料庫連線池被建立,它將一直存在直到該程式結束。維護一個非活動狀態的連線池幾乎不需要什麼系統開銷。
連線池中的資料庫連線
連線池根據唯一的連線字串被建立。在連線池被建立的同時,連線池將建立最小的資料庫連線,當連線不夠用時,連線池將逐個新增資料庫連線直到達到最大連線數,此後的連線請求將被加入請求佇列裡。當呼叫資料庫連線物件的Close方法或Dispose方法時,資料庫連線將被資料庫連線池回收。
當資料庫連線使用完成後,要呼叫Close方法或Dispose方法將它返回連線池。沒有顯式釋放的資料庫連線可能會沒有返回連線池。
注意不要在類的Finalize方法中呼叫任何管理類如Connection,DataReader等的Finalize方法,必須將資料庫連線的釋放權交給連線池。
釋放資料庫連線
當資料庫連線超時或服務已經完成時,連線池將會將其資源釋放,這隻能通過試圖與資料庫通訊來判斷。如果發現資料庫連線不可用,它將被標記為不可用資源。資料庫連線池將定時掃描資料庫連線,釋放所有不可用資源。
如果發現現有的資料庫連線不可用,那麼可能是該連線被資料庫連線池標記為不可用資源了,這時將丟擲一個異常。儘管如此,你還是必須釋放連線,將它返回連線池。
支援Transaction
資料庫連線池內的資料庫連線是按照Transaction Context劃分的,每當連線池接到連線請求時,他將返回與請求者Transaction Context相匹配的資料庫連線。因此,每個連線池都由數個Transaction Context相關的資料庫連線和一個Transaction Context無關的資料庫連線組成。當資料庫連線被返回連線池時,它將被放回對應的Transaction Context組中。
用連線字串關鍵字控制資料庫連線池
OracleConnection物件的屬性ConnectionString有一些能支援連線池控制的key-value字串。下表是這些key-value字串的詳細說明。
名稱
預設值
說明
Connection Lifetime
0
當資料庫連線被返回到連線池中時,它的建立時間將與當前時間比較,如果超過了Connection Lifetime規定的時間,它將被釋放掉。
為0時將被視為最大連線時間。
Enlist
'true'
當此值為true時,池中現存的所有資料庫連線將被加入到它的建立執行緒的Transaction Context中。如果不存在這個Transaction Context則無任何變化。
Max Pool Size
100
連線池能建立的最大資料庫連線數。
Min Pool Size
0
連線池要保持的最小資料庫連線數。
Pooling
'true'
當設為true時,資料庫連線將由相應的連線池管理。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-462840/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle連線MongoDB資料庫OracleMongoDB資料庫
- Oracle資料庫連線方式Oracle資料庫
- Java連線oracle資料庫JavaOracle資料庫
- .net 資料庫連線池配置資料庫
- 備忘錄:關於.net程式連線Oracle資料庫Oracle資料庫
- 【Oracle】Python 連線Oracle 資料庫OraclePython資料庫
- 資料庫與python的連線資料庫Python
- java Jdbc連線oracle資料庫連線測試JavaJDBCOracle資料庫
- ADO.NET連線資料庫資料庫
- ado.net 連線資料庫資料庫
- 連線到 ASP.NET 資料庫ASP.NET資料庫
- Python 連線 Oracle資料庫PythonOracle資料庫
- [Navicate]Navicate連線Oracle資料庫Oracle資料庫
- Python連線oracle資料庫PythonOracle資料庫
- oracle資料庫修改連線數Oracle資料庫
- NodeJs連線Oracle資料庫NodeJSOracle資料庫
- PLSQL連線oracle資料庫配置SQLOracle資料庫
- java連線Oracle資料庫獲取資料JavaOracle資料庫
- asp.net連線Access資料庫例子ASP.NET資料庫
- .NET中各種資料庫連線大全資料庫
- 資料庫的連線資料庫
- Oracle dos連線資料庫基本操作Oracle資料庫
- 使用instantclient連線oracle資料庫clientOracle資料庫
- ORACLE 配置連線遠端資料庫Oracle資料庫
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- 精PHP與MYSQL資料庫連線PHPMySql資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 連線資料庫資料庫
- 資料庫連線資料庫
- .net 資料庫連線池超時問題資料庫
- .NET中各種資料庫連線大全 (轉)資料庫
- 各種連線資料庫的連線字串資料庫字串
- Oracle RMAN 連線資料庫認證方法Oracle資料庫
- python3.4連線oracle資料庫PythonOracle資料庫
- python3.6連線oracle資料庫PythonOracle資料庫
- 使用oracle Transparent gateway 連線 sybase 資料庫OracleGateway資料庫
- 使用ssh tunnels加密連線oracle資料庫加密Oracle資料庫
- 資料庫的連線數資料庫