Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté SQL, Power BI, Fabric et AI ultime. 31 mars - 2 avril. Utilisez le code MSCUST pour une remise de 150 $. Les prix montent le 11 février.
Inscrivez-vous aujourd’huiCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S'applique à : .NET Framework .NET .NET Standard
La méthode de nouvelle tentative par défaut quand le commutateur de sécurité est activé est SqlConfigurableRetryFactory.CreateNoneRetryProvider à la fois pour SqlConnection et pour SqlCommand. Vous pouvez spécifier une autre méthode de nouvelle tentative en utilisant un fichier de configuration.
Les options de logique de nouvelle tentative par défaut d’une application peuvent être modifiées en ajoutant les sections suivantes dans la section configSections
du fichier de configuration :
SqlConfigurableRetryLogicConnection
: pour spécifier la logique de nouvelle tentative par défaut pour SqlConnection.<section name="SqlConfigurableRetryLogicConnection"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryConnectionSection, Microsoft.Data.SqlClient"/>
SqlConfigurableRetryLogicCommand
: pour spécifier la logique de nouvelle tentative par défaut pour SqlCommand.<section name="SqlConfigurableRetryLogicCommand"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryCommandSection, Microsoft.Data.SqlClient"/>
AppContextSwitchOverrides
: le .NET Framework prend en charge les commutateurs AppContext par le biais d’une section AppContextSwitchOverrides, qui n’a pas besoin d’être définie explicitement. Pour activer un commutateur dans .NET Core, vous devez spécifier cette section.<section name="AppContextSwitchOverrides"
type="Microsoft.Data.SqlClient.AppContextSwitchOverridesSection, Microsoft.Data.SqlClient"/>
Notes
Les configurations suivantes doivent être spécifiées dans la section configuration
. Déclarez ces nouvelles sections pour configurer la logique de nouvelle tentative par défaut par le biais d’un fichier de configuration d’application.
Notes
À partir de Microsoft.Data.SqlClient v4.0, le commutateur AppContext « Switch.Microsoft.Data.SqlClient.EnableRetryLogic » n’est plus nécessaire pour utiliser la fonctionnalité de logique de nouvelle tentative configurable. La fonctionnalité est désormais prise en charge en production. Le comportement par défaut de la fonctionnalité continue d’être une stratégie sans nouvelle tentative. Celle-ci doit être remplacée par les applications clientes pour autoriser les nouvelles tentatives.
Vous pouvez activer le commutateur de sécurité par le biais d’un fichier de configuration. Pour savoir comment l’activer par le biais d’un code d’application, consultez Activer la logique de nouvelle tentative configurable.
<runtime>
<AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableRetryLogic=true"/>
</runtime>
<AppContextSwitchOverrides value="Switch.Microsoft.Data.SqlClient.EnableRetryLogic=true"/>
Les attributs suivants peuvent être utilisés pour spécifier la logique de nouvelle tentative par défaut pour toutes les instances de SqlConnection dans une application :
numberOfTries : définit le nombre de tentatives.
deltaTime : définit l’écart de temps sous la forme d’un objet TimeSpan.
minTime : définit l’écart de temps minimal autorisé sous la forme d’un objet TimeSpan.
maxTime : définit l’écart de temps maximal autorisé sous la forme d’un objet TimeSpan.
transientErrors : définit la liste des numéros d’erreur temporaire sur lesquels effectuer une nouvelle tentative.
retryMethod : spécifie un créateur de méthode de nouvelle tentative qui reçoit la configuration de nouvelle tentative par le biais d’un paramètre SqlRetryLogicOption et retourne un objet SqlRetryLogicBaseProvider.
retryLogicType : définit un fournisseur de logique de nouvelle tentative personnalisé qui contient les créateurs de méthode de nouvelle tentative qui fournissent retryMethod
. Ces méthodes doivent répondre aux critères de retryMethod
. Le nom de type complet du fournisseur doit être utilisé. Pour plus d’informations, consultez Spécification de noms de types complets.
Notes
Il n’est pas nécessaire de spécifier retryLogicType
si vous utilisez les fournisseurs de nouvelles tentatives intégrés. Pour connaître les fournisseurs de nouvelles tentatives intégrés, consultez Fournisseurs de logique de nouvelle tentative internes dans SqlClient.
L’attribut suivant peut également être défini pour toutes les instances de SqlCommand dans une application :
Notes
L’expression régulière respecte la casse.
Tente d’établir une connexion au maximum trois fois avec un délai approximatif de 1 seconde entre les tentatives à l’aide de la méthode SqlConfigurableRetryFactory.CreateFixedRetryProvider et de la liste des erreurs temporaires par défaut :
<SqlConfigurableRetryLogicConnection retryMethod ="CreateFixedRetryProvider"
numberOfTries ="3" deltaTime ="00:00:01"/>
Tente d’établir une connexion au maximum cinq fois avec un délai de 45 secondes entre les tentatives à l’aide de la méthode SqlConfigurableRetryFactory.CreateExponentialRetryProvider et de la liste des erreurs temporaires par défaut :
<SqlConfigurableRetryLogicConnection retryMethod ="CreateExponentialRetryProvider"
numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45"/>
Tente d’exécuter une commande au maximum quatre fois dans un délai de 2 à 30 secondes à l’aide de la méthode SqlConfigurableRetryFactory.CreateIncrementalRetryProvider et de la liste des erreurs temporaires par défaut :
<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider"
numberOfTries ="4" deltaTime ="00:00:02" maxTime ="00:00:30"/>
Tente d’exécuter une commande au maximum huit fois avec un délai d’une seconde à une minute. Elle est limitée aux commandes CommandText
contenant le mot SELECT
et les numéros d’exception 102 ou 997. Elle utilise la méthode SqlConfigurableRetryFactory.CreateIncrementalRetryProvider intégrée :
<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider"
numberOfTries ="8" deltaTime ="00:00:01" maxTime ="00:01:00"
transientErrors="102, 997"
authorizedSqlCondition="\b(SELECT)\b"/>
Notes
Dans les deux prochains exemples, vous trouverez le code source de la logique de nouvelle tentative personnalisée fourni dans API principales de logique de nouvelle tentative configurable dans SqlClient. Nous partons du principe que la méthode CreateCustomProvider
est définie dans la classe CustomCRL_Doc.CustomRetry
de l’assembly CustomCRL_Doc.dll
qui se trouve dans le répertoire d’exécution de l’application.
Tente d’établir une connexion au maximum cinq fois, avec un délai de 3 à 45 secondes, avec les numéros d’erreur 4060, 997 et 233 figurant dans la liste, et en utilisant le fournisseur de nouvelles tentatives personnalisé spécifié :
<SqlConfigurableRetryLogicConnection retryLogicType ="CustomCRL_Doc.CustomRetry, CustomCRL_Doc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
retryMethod ="CreateCustomProvider"
numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45"
transientErrors ="4060, 997, 233"/>
Cet exemple se comporte comme le précédent :
<SqlConfigurableRetryLogicConnection retryLogicType ="CustomCRL_Doc.CustomRetry, CustomCRL_Doc"
retryMethod ="CreateCustomProvider"
numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45"
transientErrors ="4060, 997, 233"/>
Notes
Les fournisseurs de logique de nouvelle tentative sont mis en cache lors de la première utilisation sur une connexion ou une commande en vue d’une utilisation ultérieure pendant la durée de vie d’une application.
Notes
Toutes les erreurs survenant lors de la lecture d’un fichier de configuration d’application afin d’obtenir les paramètres de logique de nouvelle tentative ne provoquent pas d’erreurs dans l’application. La valeur SqlConfigurableRetryFactory.CreateNoneRetryProvider par défaut sera utilisée à la place.
Vous pouvez utiliser le suivi de la source d’événement pour vérifier ou résoudre les problèmes liés à la configuration de la logique de nouvelle tentative. Pour plus d’informations, consultez Activer le suivi d’événements dans SqlClient.
Événements
31 mars, 23 h - 2 avr., 23 h
L’événement de la communauté SQL, Power BI, Fabric et AI ultime. 31 mars - 2 avril. Utilisez le code MSCUST pour une remise de 150 $. Les prix montent le 11 février.
Inscrivez-vous aujourd’huiEntrainement
Module
Configurer le kit SDK Azure Cosmos DB for NoSQL - Training
Découvrez les différentes façons de configurer le kit SDK Azure Cosmos DB for NoSQL et notamment comment l’intégrer à l’émulateur, implémenter le parallélisme et créer un enregistreur d’événements personnalisé.