Partilhar via


OleDbConnection.ReleaseObjectPool Método

Definição

Indica que o pool de objetos OleDbConnection pode ser liberado quando a última conexão subjacente é liberada.

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

Exemplos

O exemplo a seguir cria um OleDbConnection, o abre, exibe algumas de suas propriedades, fecha a conexão e libera o pool de objetos para conservar recursos.

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

Comentários

ReleaseObjectPool pode ser chamado para liberar recursos que, de outra forma, seriam reservados para objetos em OleDbConnection pool. Talvez você queira chamar esse método se, por exemplo, o objeto de conexão não for usado novamente durante o tempo em que os serviços OLE DB normalmente mantêm as conexões em pool ativas. Observe que chamar o método sozinho não libera realmente as conexões ativas que existem no pool.

O seguinte deve ocorrer antes que o pool seja finalmente descartado:

  1. Chame Close para retornar o objeto de conexão para o pool.

  2. Permitir que cada objeto de conexão saia do pool.

  3. Chame ReleaseObjectPool.

  4. Invocar coleta de lixo.

Por outro lado, se você chamar Close em todas as conexões ativas e invocar a coleta de lixo, mas não chamar ReleaseObjectPool, os recursos reservados para os objetos em pool permanecerão disponíveis.

Aplica-se a

Confira também