Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: .NET Framework
.NET
Standard
De standaardmethode voor opnieuw proberen wanneer de veiligheidsschakelaar is ingeschakeld, is voor SqlConfigurableRetryFactory.CreateNoneRetryProvider beide SqlConnection en SqlCommand. U kunt een andere methode voor opnieuw proberen opgeven met behulp van een configuratiebestand.
Configuratiesecties
Standaardopties voor logica voor opnieuw proberen voor een toepassing kunnen worden gewijzigd door de volgende secties toe te voegen in de configSections sectie van het configuratiebestand:
-
SqlConfigurableRetryLogicConnection: als u de standaardlogica voor opnieuw proberen wilt opgeven voor SqlConnection.
<section name="SqlConfigurableRetryLogicConnection"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryConnectionSection, Microsoft.Data.SqlClient"/>
-
SqlConfigurableRetryLogicCommand: als u de standaardlogica voor opnieuw proberen wilt opgeven voor SqlCommand.
<section name="SqlConfigurableRetryLogicCommand"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryCommandSection, Microsoft.Data.SqlClient"/>
Opmerking
De volgende configuraties moeten worden opgegeven in de configuration sectie. Declareer deze nieuwe secties om de standaardlogica voor opnieuw proberen te configureren via een toepassingsconfiguratiebestand.
Sectie Verbinding
De volgende kenmerken kunnen worden gebruikt om de standaardlogica voor opnieuw proberen op te geven voor alle SqlConnection exemplaren in een toepassing:
numberOfTries: stelt het aantal keren in dat moet worden geprobeerd.
deltaTime: stelt het tijdsinterval tussen tussenruimtes in als een TimeSpan object.
minTime: stelt het toegestane minimale interval tussenruimtetijd in als een TimeSpan object.
maxTime: stelt het toegestane maximale interval tussenruimtetijd in als een TimeSpan object.
tijdelijkefout: hiermee stelt u de lijst met tijdelijke foutnummers in waarop u het opnieuw wilt proberen.
retryMethod: hiermee geeft u een maker van een methode voor opnieuw proberen op die de configuratie voor opnieuw proberen ontvangt via een SqlRetryLogicOption parameter en een SqlRetryLogicBaseProvider object retourneert.
retryLogicType: stelt een aangepaste logische provider voor opnieuw proberen in, die de makers van de methode voor opnieuw proberen bevat die de
retryMethod. Deze methoden moeten voldoen aan de criteria voorretryMethod. De volledig gekwalificeerde typenaam van de provider moet worden gebruikt. Zie Volledig gekwalificeerde typenamen opgeven voor meer informatie.
Opmerking
Het is niet vereist om op retryLogicType te geven of u de ingebouwde providers voor nieuwe pogingen gebruikt. Zie Interne logische providers voor nieuwe pogingen in SqlClient om de ingebouwde providers voor nieuwe pogingen te vinden.
Opdrachtsectie
Het volgende kenmerk kan ook worden ingesteld voor alle SqlCommand exemplaren in een toepassing:
- authorizedSqlCondition: hiermee stelt u een reguliere expressie vooraf in om SqlCommand.CommandText specifieke SQL-instructies te filteren.
Opmerking
De reguliere expressie is hoofdlettergevoelig.
Voorbeelden
Pogingen om een verbinding tot drie keer tot stand te brengen met een vertraging van ongeveer 1 seconde tussen pogingen met behulp van de SqlConfigurableRetryFactory.CreateFixedRetryProvider methode en de standaard tijdelijke foutenlijst:
<SqlConfigurableRetryLogicConnection retryMethod ="CreateFixedRetryProvider" numberOfTries ="3" deltaTime ="00:00:01"/>Pogingen om een verbinding tot vijf keer tot stand te brengen met een vertraging van maximaal 45 seconden tussen pogingen met behulp van de SqlConfigurableRetryFactory.CreateExponentialRetryProvider methode en de standaard tijdelijke foutenlijst:
<SqlConfigurableRetryLogicConnection retryMethod ="CreateExponentialRetryProvider" numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45"/>Probeert een opdracht maximaal vier keer uit te voeren met een vertraging tussen 2 en 30 seconden met behulp van de SqlConfigurableRetryFactory.CreateIncrementalRetryProvider methode en de standaard tijdelijke foutenlijst:
<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider" numberOfTries ="4" deltaTime ="00:00:02" maxTime ="00:00:30"/>Probeert een opdracht maximaal acht keer uit te voeren met een vertraging van één seconde tot één minuut. Het is beperkt tot opdrachten met
CommandTexthet woordSELECTen uitzonderingsnummers 102 of 997. Hierbij wordt gebruikgemaakt van de ingebouwde SqlConfigurableRetryFactory.CreateIncrementalRetryProvider methode:<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider" numberOfTries ="8" deltaTime ="00:00:01" maxTime ="00:01:00" transientErrors="102, 997" authorizedSqlCondition="\b(SELECT)\b"/>
Opmerking
In de volgende twee voorbeelden vindt u de aangepaste broncode voor opnieuw proberen van configureerbare logische kern-API's voor opnieuw proberen in SqlClient. Hierbij wordt ervan uitgegaan dat de CreateCustomProvider methode is gedefinieerd in de CustomCRL_Doc.CustomRetry klasse in de CustomCRL_Doc.dll assembly die zich in de uitvoermap van de toepassing bevindt.
Pogingen om een verbinding tot vijf keer tot stand te brengen, met een vertraging tussen 3 en 45 seconden, foutnummers 4060, 997 en 233 in de lijst, en met behulp van de opgegeven aangepaste provider voor opnieuw proberen:
<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"/>Dit voorbeeld gedraagt zich als de vorige:
<SqlConfigurableRetryLogicConnection retryLogicType ="CustomCRL_Doc.CustomRetry, CustomCRL_Doc" retryMethod ="CreateCustomProvider" numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45" transientErrors ="4060, 997, 233"/>
Opmerking
Logische providers voor opnieuw proberen worden in de cache opgeslagen bij het eerste gebruik van een verbinding of opdracht voor toekomstig gebruik tijdens de levensduur van een toepassing.
Opmerking
Fouten bij het lezen van een toepassingsconfiguratiebestand voor logische instellingen voor opnieuw proberen veroorzaken geen fouten in de toepassing. In plaats daarvan wordt de standaardwaarde SqlConfigurableRetryFactory.CreateNoneRetryProvider gebruikt.
U kunt tracering van gebeurtenisbronnen gebruiken om problemen met het configureren van logica voor opnieuw proberen te controleren of op te lossen. Zie Gebeurtenistracering inschakelen in SqlClient voor meer informatie.