Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: .NET Framework
.NET
.NET Standard
A lógica de repetição configurável permite que desenvolvedores e administradores gerenciem o comportamento do aplicativo quando ocorrem falhas transitórias. O recurso adiciona controles durante a conexão ou execução de um comando. Os controles podem ser definidos através de código ou um arquivo de configuração do aplicativo. Números de erro transitórios e propriedades de repetição podem ser definidos para controlar o comportamento de nova tentativa. Além disso, expressões regulares podem ser usadas para filtrar instruções SQL específicas.
Componentes de recursos
Esta característica consiste em três componentes principais:
- APIs principais: os desenvolvedores podem usar essas interfaces para implementar sua própria lógica de repetição em SqlConnection objetos e SqlCommand objetos. Para obter mais informações, consulte APIs principais de lógica de repetição configuráveis no SqlClient.
- Lógica de repetição configurável predefinida: os métodos de lógica de repetição internos usando as APIs principais são acessíveis a partir da SqlConfigurableRetryFactory classe. Para obter mais informações, consulte Provedores lógicos de repetição interna em SqlClient.
- Esquema do arquivo de configuração: para especificar a lógica de repetição padrão para SqlConnection e SqlCommand em um aplicativo. Para obter mais informações, consulte Arquivo de configuração de lógica de repetição configurável com SqlClient.
Início rápido
Para utilizar esta funcionalidade, siga estes passos:
Defina as opções de lógica de repetição usando SqlRetryLogicOption.
Neste exemplo, alguns dos parâmetros de repetição são definidos e o restante deles usará os valores padrão.// 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) };Crie um provedor de lógica de repetição usando seu SqlRetryLogicOption objeto.
// Create a retry logic provider SqlRetryLogicBaseProvider provider = SqlConfigurableRetryFactory.CreateExponentialRetryProvider(options);Atribua a SqlRetryLogicBaseProvider instância ao SqlConnection.RetryLogicProvider ou SqlCommand.RetryLogicProvider.
Neste exemplo, o comando connection open tentará novamente se acertar um dos erros transitórios na SqlConfigurableRetryFactory lista interna por no máximo cinco vezes.// 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();
Observação
Essas etapas são as mesmas para uma execução de comando, exceto que você atribuiria o provedor de repetição à SqlCommand.RetryLogicProvider propriedade antes de executar o comando.