다음을 통해 공유


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하지 않으면 풀된 개체에 예약된 리소스를 계속 사용할 수 있습니다.

적용 대상

추가 정보