Partager via


Introduction à la logique de nouvelle tentative configurable dans SqlClient

S'applique à : .NET Framework .NET .NET Standard

Télécharger ADO.NET

La logique de nouvelle tentative configurable permet aux développeurs et aux administrateurs de gérer le comportement des applications quand des erreurs temporaires se produisent. La fonctionnalité ajoute des contrôles pendant la connexion ou l’exécution d’une commande. Les contrôles peuvent être définis par le biais de code ou d’un fichier de configuration d’application. Il est possible de définir des numéros d’erreur temporaires et des propriétés de nouvelle tentative pour contrôler le comportement des nouvelles tentatives. De plus, les expressions régulières peuvent être utilisées pour filtrer des instructions SQL spécifiques.

Composants de fonctionnalité

Cette fonctionnalité est constituée de trois composants principaux :

  1. API principales : les développeurs peuvent utiliser ces interfaces pour implémenter leur propre logique de nouvelle tentative sur des objets SqlConnection et SqlCommand. Pour plus d’informations, consultez API principales de logique de nouvelle tentative configurable dans SqlClient.
  2. Logique de nouvelle tentative configurable prédéfinie : les méthodes de logique de nouvelle tentative intégrées à l’aide des API principales sont accessibles à partir de la classe SqlConfigurableRetryFactory. Pour plus d’informations, consultez Fournisseurs de logique de nouvelle tentative interne dans SqlClient.
  3. Schéma du fichier de configuration : permet de spécifier la logique de nouvelle tentative par défaut pour SqlConnection et SqlCommand dans une application. Pour plus d’informations, consultez Fichier de configuration de la logique de nouvelle tentative configurable avec SqlClient.

Démarrage rapide

Pour utiliser cette fonctionnalité, effectuez les quatre étapes suivantes :

  1. Activez le commutateur de sécurité dans la préversion. Pour plus d’informations sur la façon d’activer le commutateur de sécurité AppContext, consultez Activer la logique de nouvelle tentative configurable.

  2. Définissez les options de logique de nouvelle tentative à l’aide de SqlRetryLogicOption.
    Dans cet exemple, certains des paramètres de nouvelle tentative sont définis et les autres utiliseront les valeurs par défaut.

    // 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)
    };
    
  3. Créez un fournisseur de logique de nouvelle tentative à l’aide de votre objet SqlRetryLogicOption.

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  4. Affectez l’instance de SqlRetryLogicBaseProvider à SqlConnection.RetryLogicProvider ou à SqlCommand.RetryLogicProvider.
    Dans cet exemple, la commande d’ouverture de connexion fait une nouvelle tentative si elle rencontre l’une des erreurs temporaires figurant dans la liste interne SqlConfigurableRetryFactory au maximum cinq fois.

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

Notes

Ces étapes sont les mêmes pour l’exécution d’une commande, excepté que vous affectez à la place le fournisseur de nouvelles tentatives à la propriété SqlCommand.RetryLogicProvider avant d’exécuter la commande.

Voir aussi