Udostępnij przez


Konfigurowanie logiki ponawiania prób w programie SqlClient — wprowadzenie

Dotyczy: .NET Framework .NET Standard

Pobieranie ADO.NET

Konfigurowalna logika ponawiania umożliwia deweloperom i administratorom zarządzanie zachowaniem aplikacji w przypadku wystąpienia przejściowych błędów. Funkcja dodaje kontrolki podczas nawiązywania połączenia lub wykonywania polecenia. Kontrolki można zdefiniować za pomocą kodu lub pliku konfiguracji aplikacji. Przejściowe numery błędów i właściwości ponawiania prób można zdefiniować w celu kontrolowania zachowania ponawiania prób. Ponadto wyrażenia regularne mogą służyć do filtrowania określonych instrukcji SQL.

Składniki funkcji

Ta funkcja składa się z trzech głównych składników:

  1. Podstawowe interfejsy API: deweloperzy mogą używać tych interfejsów do implementowania własnej logiki ponawiania prób na obiektach SqlConnection i SqlCommand . Aby uzyskać więcej informacji, zobacz Konfigurowanie podstawowych interfejsów API logiki ponawiania w programie SqlClient.
  2. Wstępnie zdefiniowana konfigurowalna logika ponawiania: wbudowane metody logiki ponawiania przy użyciu podstawowych interfejsów API są dostępne z SqlConfigurableRetryFactory klasy . Aby uzyskać więcej informacji, zobacz Wewnętrzne dostawcy logiki ponawiania w programie SqlClient.
  3. Schemat pliku konfiguracji: aby określić domyślną logikę ponawiania prób dla SqlConnection i SqlCommand w aplikacji. Aby uzyskać więcej informacji, zobacz Configurable retry logic configuration file with SqlClient (Konfigurowanie pliku konfiguracji logiki ponawiania za pomocą programu SqlClient).

Szybki start

Aby użyć tej funkcji, wykonaj następujące kroki:

  1. Zdefiniuj opcje logiki ponawiania przy użyciu polecenia SqlRetryLogicOption.
    W tym przykładzie niektóre parametry ponawiania są ustawione, a pozostałe z nich będą używać wartości domyślnych.

    // Define the retry logic parameters
    var options = new SqlRetryLogicOption()
    {
        // Tries 5 times before throwing an exception
        NumberOfTries = 5,
        // Preferred gap time to delay before retry
        DeltaTime = TimeSpan.FromSeconds(1),
        // Maximum gap time for each delay time before retry
        MaxTimeInterval = TimeSpan.FromSeconds(20)
    };
    
  2. Utwórz dostawcę logiki ponawiania przy użyciu SqlRetryLogicOption obiektu .

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  3. SqlRetryLogicBaseProvider Przypisz wystąpienie do obiektu SqlConnection.RetryLogicProvider lub SqlCommand.RetryLogicProvider.
    W tym przykładzie polecenie otwarcia połączenia ponowi próbę, jeśli wystąpi jeden z przejściowych błędów na SqlConfigurableRetryFactory liście wewnętrznej przez maksymalnie pięć razy.

    // Assumes that connection is a valid SqlConnection object 
    // Set the retry logic provider on the connection instance
    connection.RetryLogicProvider = provider;
    // Establishing the connection will retry if a transient failure occurs.
    connection.Open();
    

Uwaga / Notatka

Te kroki są takie same w przypadku wykonywania polecenia, z wyjątkiem tego, że zamiast tego należy przypisać dostawcę ponawiania prób do SqlCommand.RetryLogicProvider właściwości przed wykonaniem polecenia.

Zobacz także