OleDbConnection.ReleaseObjectPool メソッド

定義

基になる最後の接続が解放されたときに、OleDbConnection オブジェクトのプールを削除できることを示します。

public:
 static void ReleaseObjectPool();
public static void ReleaseObjectPool ();
static member ReleaseObjectPool : unit -> unit
Public Shared Sub ReleaseObjectPool ()

次の例では、 を OleDbConnection作成し、それを開き、そのプロパティの一部を表示し、接続を閉じて、リソースを節約するためにオブジェクト プールを解放します。

static void OpenConnection(string connectionString)
{
    using (OleDbConnection connection = new OleDbConnection(connectionString))
    {
        try
        {
            connection.Open();
            Console.WriteLine("Connection.State: {0}", connection.State);

            connection.Close();
            OleDbConnection.ReleaseObjectPool();
            Console.WriteLine("Connection.State: {0}", connection.State);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        // The connection is automatically closed when the
        // code exits the using block.
    }
}
Public Sub OpenConnection(ByVal connectionString As String)

    Using connection As New OleDbConnection(connectionString)
        Try
            connection.Open()
            Console.WriteLine("Connection.State: {0}", _
                connection.State)

            connection.Close()
            OleDbConnection.ReleaseObjectPool()
            Console.WriteLine("Connection.State: {0}", _
                connection.State)

        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Using
End Sub

注釈

ReleaseObjectPool を呼び出して、プールされた OleDbConnection オブジェクト用に予約されるリソースを解放できます。 たとえば、OLE DB サービスが通常プールされた接続をアクティブに保つ時間の間、接続オブジェクトが再び使用されない場合に、このメソッドを呼び出すことができます。 メソッドを呼び出すだけでは、プールに存在するアクティブな接続は実際には解放されないことに注意してください。

プールが最終的に破棄される前に、次の処理を行う必要があります。

  1. を呼び出 Close して、接続オブジェクトをプールに返します。

  2. 各接続オブジェクトがプールからタイムアウトすることを許可します。

  3. ReleaseObjectPool を呼び出します。

  4. ガベージ コレクションを呼び出します。

逆に、すべてのアクティブな接続で を呼び出 Close し、ガベージ コレクションを呼び出しても、 を呼び出 ReleaseObjectPoolさない場合、プールされたオブジェクト用に予約されたリソースは引き続き使用できます。

適用対象

こちらもご覧ください