Bagikan melalui


Logika coba lagi yang dapat dikonfigurasi dalam pengenalan SqlClient

Berlaku untuk: .NET Framework .NET .NET Standard

Mengunduh ADO.NET

Logika coba lagi yang dapat dikonfigurasi memungkinkan pengembang dan administrator mengelola perilaku aplikasi saat kesalahan sementara terjadi. Fitur ini menambahkan kontrol selama koneksi atau eksekusi perintah. Kontrol dapat didefinisikan melalui kode atau file konfigurasi aplikasi. Nomor kesalahan sementara dan properti coba lagi dapat didefinisikan untuk mengontrol perilaku coba lagi. Selain itu, ekspresi reguler dapat digunakan untuk memfilter pernyataan SQL tertentu.

Komponen fitur

Fitur ini terdiri dari tiga komponen utama:

  1. API inti: Pengembang dapat menggunakan antarmuka ini untuk mengimplementasikan logika SqlConnection coba lagi dan SqlCommand objek mereka sendiri. Untuk informasi selengkapnya, lihat API inti logika coba lagi yang dapat dikonfigurasi di SqlClient.
  2. Logika coba lagi yang telah ditentukan sebelumnya: Metode logika coba lagi bawaan menggunakan API inti dapat diakses dari SqlConfigurableRetryFactory kelas . Untuk informasi selengkapnya, lihat Penyedia logika percobaan kembali internal di SqlClient.
  3. Skema file konfigurasi: Untuk menentukan logika coba lagi default untuk SqlConnection dan SqlCommand dalam aplikasi. Untuk informasi selengkapnya, lihat File konfigurasi logika coba lagi yang dapat dikonfigurasi dengan SqlClient.

Mulai Cepat

Untuk menggunakan fitur ini, ikuti empat langkah berikut:

  1. Aktifkan sakelar keamanan dalam versi pratinjau. Untuk informasi tentang cara mengaktifkan sakelar keamanan AppContext, lihat Mengaktifkan logika coba lagi yang dapat dikonfigurasi.

  2. Tentukan opsi logika coba lagi menggunakan SqlRetryLogicOption.
    Dalam sampel ini, beberapa parameter coba lagi diatur dan sisanya akan menggunakan nilai default.

    // 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. Buat penyedia logika coba lagi menggunakan objek Anda SqlRetryLogicOption .

    // Create a retry logic provider
    SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
    
  4. Tetapkan SqlRetryLogicBaseProvider instans ke SqlConnection.RetryLogicProvider atau SqlCommand.RetryLogicProvider.
    Dalam sampel ini, perintah buka koneksi akan mencoba kembali jika mencapai salah satu kesalahan sementara dalam SqlConfigurableRetryFactory daftar internal selama maksimal lima kali.

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

Catatan

Langkah-langkah ini sama untuk eksekusi perintah, kecuali Anda akan menetapkan penyedia coba lagi ke SqlCommand.RetryLogicProvider properti sebelum menjalankan perintah.

Lihat juga