Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: .NET Framework
.NET
.NET Standard
Yapılandırılabilir yeniden deneme mantığı, geliştiricilerin ve yöneticilerin geçici hatalar olduğunda uygulama davranışını yönetmelerine olanak tanır. Bu özellik, bir komutun bağlantısı veya yürütülmesi sırasında denetimler ekler. Denetimler kod veya uygulama yapılandırma dosyası aracılığıyla tanımlanabilir. Yeniden deneme davranışını denetlemek için geçici hata numaraları ve yeniden deneme özellikleri tanımlanabilir. Ayrıca, belirli SQL deyimlerini filtrelemek için normal ifadeler kullanılabilir.
Özellik bileşenleri
Bu özellik üç ana bileşenden oluşur:
- Temel API'ler: Geliştiriciler ve nesneleri üzerinde SqlConnectionSqlCommand kendi yeniden deneme mantığını uygulamak için bu arabirimleri kullanabilir. Daha fazla bilgi için bkz . SqlClient'da yapılandırılabilir yeniden deneme mantıksal çekirdek API'leri.
- Önceden tanımlanmış yapılandırılabilir yeniden deneme mantığı: Çekirdek API'leri kullanan yerleşik yeniden deneme mantığı yöntemlerine sınıfından SqlConfigurableRetryFactory erişilebilir. Daha fazla bilgi için bkz. SqlClient'da iç yeniden deneme mantığı sağlayıcıları.
- Yapılandırma dosyası şeması: Bir uygulamada ve SqlConnection için varsayılan yeniden deneme mantığını belirtmek içinSqlCommand. Daha fazla bilgi için bkz . SqlClient ile yapılandırılabilir yeniden deneme mantığı yapılandırma dosyası.
Hızlı başlangıç
Bu özelliği kullanmak için şu adımları izleyin:
kullanarak SqlRetryLogicOptionyeniden deneme mantığı seçeneklerini tanımlayın.
Bu örnekte, yeniden deneme parametrelerinden bazıları ayarlanır ve geri kalanı varsayılan değerleri kullanır.// 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) };Nesnenizi SqlRetryLogicOption kullanarak bir yeniden deneme mantığı sağlayıcısı oluşturun.
// Create a retry logic provider SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);örneğini SqlRetryLogicBaseProvider veya SqlConnection.RetryLogicProvideröğesine atayınSqlCommand.RetryLogicProvider.
Bu örnekte, bağlantı açma komutu iç listedeki geçici hatalardan SqlConfigurableRetryFactory birine en fazla beş kez isabet ederse yeniden dener.// 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();
Uyarı
Bu adımlar komut yürütme için aynıdır, ancak bunun yerine komutu yürütmeden önce özelliğine SqlCommand.RetryLogicProvider yeniden deneme sağlayıcısı atarsınız.