ODP.netの接続と切断
ODP.netは接続する際に以下のようにOracleConnectionクラスを生成し、ConnectionStringプロパティにユーザやパスワードを設定し、 OpenメソッドによりORACLEへ接続します。Imports Oracle.DataAccess.Client Module Module1 Sub Main() Dim oraConnection oraConnection = New OracleConnection oraConnection.ConnectionString = "User Id=test;Password=test;Data Source=ORCL112;Pooling = false;" oraConnection.Open() MsgBox("接続成功") oraConnection.Close() oraConnection.Dispose() oraConnection = Nothing MsgBox("切断") End Sub End Module接続・切断のみ行うコンソールアプリケーションのソース(vb)
using System.Windows.Forms; using Oracle.DataAccess.Client; class Program { static void Main(string[] args) { OracleConnection oraConn; oraConn = new OracleConnection(); oraConn.ConnectionString = "User Id=test;Password=test;Data Source=orcl112;Pooling=false"; MessageBox.Show("接続成功","接続成功", MessageBoxButtons.OK, MessageBoxIcon.Information); oraConn.Open(); oraConn.Close(); oraConn.Dispose(); MessageBox.Show("切断成功", "切断成功", MessageBoxButtons.OK, MessageBoxIcon.Information); } }接続・切断のみ行うコンソールアプリケーションのソース(C#)
コネクションプール機能
上記ソースではConnectionStringに「Pooling = false」を設定し明示的にコネクションプーリングを無効にしていますが、 ODP.netはPoolingの設定値がない場合デフォルトでコネクションプーリングが有効になります。コネクションプーリングが有効になっている場合closeメソッドを実行してもコネクションがコネクションプールに戻されるというアプリ内部の動作だけでORACLEへのコネクションは実際には切断されません (コネクションプールに格納されたコネクション自体を破棄する場合はClearPoolメソッドを使用します)。 意図的にコネクションの接続と切断を制御したいアプリケーションの場合は注意が必要です。
ODP.netの接続オプション
ODP.netの基本的なな接続文字列の属性は以下の通りです。接続文字列属性 | 説明 |
---|---|
User Id | ユーザ名です。 |
Password | User Idに対応するパスワードです。11.2のマニュアルには「パスワードでは、大/小文字は区別されません。」と記載されていますが区別はされているようです。 |
Data Source | tnsnames.oraに記載した接続識別子か、簡易接続ネーミング形式の接続設定を記載します。 |
DBA Privilege | SYSDBAまたはSYSOPERを設定することで特殊な権限を持つユーザとして接続が可能です |
Metadata Pooling | メタデータ情報をキャッシュするかどうかの設定です。メタデータとはおそらく再帰SQL等の問い合わせに使われるディクショナリ関連の情報を指していると思われます。 |