적용 대상: .NET Framework
.NET .NET
Standard
구성 가능한 다시 시도 논리를 통해 개발자와 관리자는 일시적인 오류가 발생할 때 애플리케이션 동작을 관리할 수 있습니다. 이 기능은 명령을 연결하거나 실행하는 동안 컨트롤을 추가합니다. 컨트롤은 코드 또는 애플리케이션 구성 파일을 통해 정의할 수 있습니다. 일시적인 오류 번호 및 다시 시도 속성을 정의하여 다시 시도 동작을 제어할 수 있습니다. 또한 정규식을 사용하여 특정 SQL 문을 필터링할 수 있습니다.
기능 구성 요소
이 기능은 다음과 같은 세 가지 주요 구성 요소로 구성됩니다.
- 코어 API: 개발자는 이러한 인터페이스를 사용하여 SqlConnection 및 SqlCommand 개체에서 자체 다시 시도 논리를 구현할 수 있습니다. 자세한 내용은 구성 가능한 다시 시도 논리 코어 API 사용을 참조하세요.
- 사전 정의된 구성 가능한 다시 시도 논리: 코어어 API를 사용하는 기본 제공 다시 시도 논리 메서드는 SqlConfigurableRetryFactory 클래스에서 액세스할 수 있습니다. 자세한 내용은 SqlClient의 내부 다시 시도 논리 공급자를 참조하세요.
- 구성 파일 스키마: 애플리케이션의 SqlConnection 및 SqlCommand에 대한 기본 다시 시도 논리를 지정합니다. 자세한 내용은 SqlClient를 사용하여 구성 가능한 다시 시도 논리 구성 파일을 참조하세요.
빠른 시작
이 기능을 사용하려면 다음 단계를 수행합니다.
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 내부 목록의 일시적인 오류 중 하나에 도달하면 최대 5번까지 다시 시도합니다.// 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 속성에 다시 시도 공급자를 할당하는 것을 제외하고는 명령 실행에 대해 동일합니다.