Udostępnij za pośrednictwem


OleDbConnection.ReleaseObjectPool Metoda

Definicja

Wskazuje, że pulę OleDbConnection obiektów można zwolnić po wydaniu ostatniego połączenia bazowego.

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

Przykłady

Poniższy przykład tworzy obiekt OleDbConnection, otwiera go, wyświetla niektóre jego właściwości, zamyka połączenie i zwalnia pulę obiektów w celu oszczędzania zasobów.

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

Uwagi

ReleaseObjectPool można wywołać do bezpłatnych zasobów, które w przeciwnym razie byłyby zarezerwowane dla obiektów w puli OleDbConnection . Możesz wywołać tę metodę, jeśli na przykład obiekt połączenia nie będzie ponownie używany przez czas, przez jaki usługi OLE DB zwykle utrzymują aktywne połączenia w puli. Należy pamiętać, że wywołanie samej metody nie zwalnia aktywnych połączeń, które istnieją w puli.

Przed ostatecznym likwidacją puli należy przeprowadzić następujące czynności:

  1. Wywołaj metodę Close , aby zwrócić obiekt połączenia do puli.

  2. Zezwalaj każdemu obiektowi połączenia na przekroczenie limitu czasu puli.

  3. Wywołaj polecenie ReleaseObjectPool.

  4. Wywoływanie odzyskiwania pamięci.

Z drugiej strony, jeśli wywołasz wszystkie aktywne połączenia i wywołasz Close odzyskiwanie pamięci, ale nie wywołasz ReleaseObjectPoolmetody , zasoby zarezerwowane dla obiektów w puli pozostaną dostępne.

Dotyczy

Zobacz też