Delen via


Configureerbare logica voor opnieuw proberen in de inleiding tot SqlClient

Van toepassing op: .NET Framework .NET Standard

ADO.NET downloaden

Met configureerbare logica voor opnieuw proberen kunnen ontwikkelaars en beheerders toepassingsgedrag beheren wanneer tijdelijke fouten optreden. Met deze functie worden besturingselementen toegevoegd tijdens de verbinding of uitvoering van een opdracht. De besturingselementen kunnen worden gedefinieerd via code of een toepassingsconfiguratiebestand. Tijdelijke foutnummers en eigenschappen voor opnieuw proberen kunnen worden gedefinieerd om het gedrag van nieuwe pogingen te bepalen. Daarnaast kunnen reguliere expressies worden gebruikt om specifieke SQL-instructies te filteren.

Onderdelen van onderdelen

Deze functie bestaat uit drie hoofdonderdelen:

  1. Kern-API's: ontwikkelaars kunnen deze interfaces gebruiken om hun eigen logica voor opnieuw proberen op SqlConnection en SqlCommand objecten te implementeren. Zie Configureerbare logische kern-API's voor opnieuw proberen in SqlClient voor meer informatie.
  2. Vooraf gedefinieerde configureerbare logica voor opnieuw proberen: ingebouwde logica voor opnieuw proberen met behulp van de kern-API's zijn toegankelijk vanuit de SqlConfigurableRetryFactory klasse. Zie Interne logische providers voor opnieuw proberen in SqlClient voor meer informatie.
  3. Configuratiebestandsschema: als u de standaardlogica voor opnieuw proberen voor SqlConnection en SqlCommand in een toepassing wilt opgeven. Zie Configureerbaar configuratiebestand voor opnieuw proberen met SqlClient voor meer informatie.

Snel aan de slag

Volg deze stappen om deze functie te gebruiken:

  1. Definieer de logicaopties voor opnieuw proberen met behulp van SqlRetryLogicOption.
    In dit voorbeeld worden enkele van de parameters voor opnieuw proberen ingesteld en worden de overige parameters gebruikt voor de standaardwaarden.

    // 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. Maak een logische provider voor opnieuw proberen met behulp van uw SqlRetryLogicOption object.

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  3. Wijs het SqlRetryLogicBaseProvider exemplaar toe aan de SqlConnection.RetryLogicProvider of SqlCommand.RetryLogicProvider.
    In dit voorbeeld wordt de opdracht Voor het openen van de verbinding opnieuw geprobeerd als er een van de tijdelijke fouten in de SqlConfigurableRetryFactory interne lijst voor een maximum van vijf keer optreedt.

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

Opmerking

Deze stappen zijn hetzelfde voor een opdrachtuitvoering, behalve dat u in plaats daarvan de provider voor opnieuw proberen aan de SqlCommand.RetryLogicProvider eigenschap toewijst voordat u de opdracht uitvoert.

Zie ook