Настраиваемая логика повторных попыток в SqlClient — введение
Область применения: платформа .NET Framework .NET Standard
Настраиваемая логика повторных попыток позволяет разработчикам и администраторам управлять поведением приложения, когда происходят временные сбои. Эта возможность позволяет добавить элементы управления во время подключения или выполнения команды. Элементы управления можно определить с помощью кода или файла конфигурации приложения. Для управления поведением попыток повтора можно определить временные номера ошибок и свойства повторных попыток. Кроме того, для фильтрации определенных инструкций SQL можно использовать регулярные выражения.
Компоненты возможности
Возможность включает три основных компонента:
- Базовые API: разработчики могут использовать эти интерфейсы для реализации собственной логики повторов в объектах SqlConnection и SqlCommand. Дополнительные сведения см. в статье Базовые API настраиваемой логики повторных попыток в SqlClient.
- Предварительно определенная логика повторных попыток: встроенные методы логики повторных попыток с использованием базовых API доступны из класса SqlConfigurableRetryFactory. Дополнительные сведения см. в статье Внутренние поставщики логики повторных попыток в SqlClient.
- Схема файла конфигурации: позволяет указать логику повторных попыток по умолчанию для SqlConnection и SqlCommand в приложении. Дополнительные сведения см. в статье Настраиваемый файл конфигурации логики повторных попыток в SqlClient.
Быстрое начало работы
Чтобы использовать эту возможность, выполните следующие четыре шага:
Включите переключатель безопасности в предварительной версии. Дополнительные сведения о том, как включить параметр-переключатель безопасности AppContext, см. в разделе Включение настраиваемой логики повторных попыток.
Определите параметры логики повторных попыток с помощью SqlRetryLogicOption.
В этом примере задаются некоторые параметры повторных попыток, а остальная часть этих параметров будет использовать значения по умолчанию.// 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) };
Создайте поставщик логики повторных попыток с помощью объекта SqlRetryLogicOption.
// Create a retry logic provider SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);
Присвойте экземпляр SqlRetryLogicBaseProvider свойству SqlConnection.RetryLogicProvider или SqlCommand.RetryLogicProvider.
В этом примере команда открытия подключения повторит попытку, если одна из временных ошибок во внутреннем списке SqlConfigurableRetryFactory возникнет максимум пять раз.// 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();
Примечание.
Эти шаги одинаковы для выполнения команды, кроме того, что вместо этого вы назначаете поставщик логики повторных попыток свойству SqlCommand.RetryLogicProvider перед выполнением команды.
См. также
- Базовые API настраиваемой логики повторных попыток в SqlClient
- Внутренние поставщики логики повторных попыток в SqlClient
- Настраиваемый файл конфигурации логики повторных попыток в SqlClient
- Включение настраиваемой логики повторных попыток
- Настраиваемая логика повторных попыток в SqlClient
- Microsoft ADO.NET для SQL Server