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等の問い合わせに使われるディクショナリ関連の情報を指していると思われます。

マニュアル

Data Provider for .NET 開発者ガイド10g リリース2(10.2.0.2)
★ORACLE案件承ります