Konfigurálható újrapróbálkozási logika az SqlClientben – bevezetés

A következőre vonatkozik: .NET Framework .NET .NET Standard

ADO.NET letöltése

A konfigurálható újrapróbálkozási logika lehetővé teszi a fejlesztők és a rendszergazdák számára az alkalmazások viselkedésének kezelését átmeneti hibák esetén. A szolgáltatás vezérlőket ad hozzá egy parancs csatlakoztatása vagy végrehajtása során. A vezérlők kóddal vagy alkalmazáskonfigurációs fájllal határozhatók meg. Átmeneti hibaszámok és újrapróbálkozási tulajdonságok definiálhatók az újrapróbálkozási viselkedés szabályozásához. Emellett a reguláris kifejezések adott SQL-utasítások szűrésére is használhatók.

Funkcióösszetevők

Ez a funkció három fő összetevőből áll:

  1. Alapvető API-k: A fejlesztők ezeket a felületeket használhatják saját újrapróbálkozásos logikájuk implementálásához az objektumokon és SqlConnection az objektumokonSqlCommand. További információ: Konfigurálható újrapróbálkozási logikai alap API-k az SqlClientben.
  2. Előre definiált konfigurálható újrapróbálkozási logika: Az alap API-kat használó beépített újrapróbálkozási logikai metódusok az SqlConfigurableRetryFactory osztályból érhetők el. További információ: Belső újrapróbálkozási logikai szolgáltatók az SqlClientben.
  3. Konfigurációs fájlséma: Az alkalmazás alapértelmezett SqlConnection újrapróbálkozási logikájának SqlCommand megadása. További információ: Konfigurálható újrapróbálkozási logikai konfigurációs fájl az SqlClient használatával.

Gyors kezdés

A funkció használatához kövesse az alábbi lépéseket:

  1. Adja meg az újrapróbálkozás logikai beállításait a következő használatával SqlRetryLogicOption: .
    Ebben a mintában az újrapróbálkozások néhány paramétere be van állítva, a többi pedig az alapértelmezett értékeket fogja használni.

    // 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. Hozzon létre újrapróbálkozás logikai szolgáltatót az SqlRetryLogicOption objektum használatával.

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  3. Rendelje hozzá a SqlRetryLogicBaseProvider példányt a SqlConnection.RetryLogicProvider vagy SqlCommand.RetryLogicProvider.
    Ebben a mintában a kapcsolatmegnyitási parancs újra megkísérl, ha a belső listában az egyik átmeneti hibát SqlConfigurableRetryFactory legfeljebb öt alkalommal éri el.

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

Megjegyzés:

Ezek a lépések ugyanazok a parancsvégrehajtás esetén, kivéve, ha a parancs végrehajtása előtt inkább az újrapróbálkozási szolgáltatót rendelné hozzá a SqlCommand.RetryLogicProvider tulajdonsághoz.

Lásd még