Freigeben über


Einführung in konfigurierbare Wiederholungslogik in SqlClient

Gilt für: .NET Framework .NET .NET Standard

Herunterladen von ADO.NET

Mithilfe der konfigurierbaren Wiederholungslogik können Entwickler und Administratoren das Anwendungsverhalten verwalten, wenn vorübergehende Fehler auftreten. Dieses Feature fügt Steuerelemente während der Verbindung oder der Ausführung eines Befehls hinzu. Die Steuerelemente können durch Code oder eine Anwendungskonfigurationsdatei definiert werden. Vorübergehende Fehlernummern und Wiederholungseigenschaften können definiert werden, um das Wiederholungsverhalten zu steuern. Außerdem können reguläre Ausdrücke zum Filtern von bestimmten SQL-Anweisungen verwendet werden.

Featurekomponenten

Dieses Feature besteht aus drei Hauptkomponenten:

  1. Core-APIs: Entwickler können diese Schnittstellen verwenden, um ihre eigene Wiederholungslogik für SqlConnection- und SqlCommand-Objekte zu implementieren. Weitere Informationen finden Sie unter Core-APIs für konfigurierbare Wiederholungslogik in SqlClient.
  2. Vordefinierte konfigurierbare Wiederholungslogik: Integrierte Methoden für Wiederholungslogik, die die Core-APIs verwenden, können aus der SqlConfigurableRetryFactory-Klasse aufgerufen werden. Weitere Informationen finden Sie unter Interne Anbieter von Wiederholungslogik in SqlClient.
  3. Schema der Konfigurationsdatei: Hiermit wird die standardmäßige Wiederholungslogik für SqlConnection und SqlCommand in einer Anwendung angegeben. Weitere Informationen finden Sie unter Konfigurationsdatei für konfigurierbare Wiederholungslogik mit SqlClient.

Schnellstart

Wenn Sie dieses Feature verwenden möchten, führen Sie die folgenden vier Schritte aus:

  1. Aktivieren Sie den Sicherheitsschalter in der Vorschauversion. Informationen dazu, wie Sie den AppContext-Sicherheitsschalter aktivieren können, finden Sie unter Aktivieren der konfigurierbaren Wiederholungslogik.

  2. Definieren Sie die Optionen für Wiederholungslogik mithilfe von SqlRetryLogicOption.
    In diesem Beispiel werden einige der Wiederholungsparameter festgelegt, und die übrigen Parameter verwenden die Standardwerte.

    // 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. Erstellen Sie einen Anbieter von Wiederholungslogik mithilfe Ihres SqlRetryLogicOption-Objekts.

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  4. Weisen Sie die SqlRetryLogicBaseProvider-Instanz dem SqlConnection.RetryLogicProvider oder dem SqlCommand.RetryLogicProvider zu.
    In diesem Beispiel wird der Befehl zum Öffnen der Verbindung wiederholt, wenn in der internen SqlConfigurableRetryFactory-Liste ein vorübergehender Fehler maximal fünfmal auftritt.

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

Hinweis

Diese Schritte sind für die Ausführung eines Befehls identisch – außer wenn Sie stattdessen vor Ausführung des Befehls den Wiederholungsanbieter der Eigenschaft SqlCommand.RetryLogicProvider zuweisen.

Weitere Informationen