Logika coba lagi yang dapat dikonfigurasi dalam pengenalan SqlClient
Berlaku untuk: .NET Framework .NET .NET Standard
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:
- 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.
- 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.
- 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:
Aktifkan sakelar keamanan dalam versi pratinjau. Untuk informasi tentang cara mengaktifkan sakelar keamanan AppContext, lihat Mengaktifkan logika coba lagi yang dapat dikonfigurasi.
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) };
Buat penyedia logika coba lagi menggunakan objek Anda SqlRetryLogicOption .
// Create a retry logic provider SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
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
- API inti logika coba lagi yang dapat dikonfigurasi di SqlClient
- Penyedia logika coba lagi internal di SqlClient
- File konfigurasi logika coba lagi yang dapat dikonfigurasi dengan SqlClient
- Aktifkan logika coba lagi yang dapat dikonfigurasi
- Logika coba lagi yang dapat dikonfigurasi di SqlClient
- Microsoft ADO.NET untuk SQL Server