Dela via


Konfigurerbar omprövningslogik i SqlClient-introduktion

Gäller för: .NET Framework .NET .NET Standard

Ladda ned ADO.NET

Med konfigurerbar omprövningslogik kan utvecklare och administratörer hantera programbeteenden när tillfälliga fel inträffar. Funktionen lägger till kontroller under anslutning eller körning av ett kommando. Kontrollerna kan definieras via kod eller en programkonfigurationsfil. Tillfälliga felnummer och återförsöksegenskaper kan definieras för att styra återförsöksbeteendet. Dessutom kan reguljära uttryck användas för att filtrera specifika SQL-uttryck.

Funktionskomponenter

Den här funktionen består av tre huvudkomponenter:

  1. Kärn-API:er: Utvecklare kan använda dessa gränssnitt för att implementera sin egen logik för återförsök och SqlConnectionSqlCommand objekt. Mer information finns i Configurable retry logic core API:er i SqlClient.
  2. Fördefinierad konfigurerbar omprövningslogik: Inbyggda logikmetoder för återförsök med hjälp av kärn-API:erna är tillgängliga från SqlConfigurableRetryFactory klassen. Mer information finns i Interna logikproviders för återförsök i SqlClient.
  3. Konfigurationsfilschema: Ange standardlogik för återförsök för SqlConnection och SqlCommand i ett program. Mer information finns i Konfigurera logikkonfigurationsfilen för omprövning med SqlClient.

Snabbstart

Följ dessa steg om du vill använda den här funktionen:

  1. Definiera logikalternativen för återförsök med hjälp av SqlRetryLogicOption.
    I det här exemplet anges några av återförsöksparametrarna och resten av dem använder standardvärdena.

    // 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. Skapa en logikprovider för återförsök med hjälp av objektet SqlRetryLogicOption .

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  3. Tilldela instansen SqlRetryLogicBaseProviderSqlConnection.RetryLogicProvider till eller SqlCommand.RetryLogicProvider.
    I det här exemplet försöker kommandot öppna anslutningen igen om det träffar ett av de tillfälliga felen i den SqlConfigurableRetryFactory interna listan i högst fem gånger.

    // 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();
    

Anmärkning

De här stegen är desamma för en kommandokörning, förutom att du i stället tilldelar återförsöksprovidern SqlCommand.RetryLogicProvider till egenskapen innan du kör kommandot.

Se även