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
O método de repetição padrão quando o interruptor de segurança está ativado é o para ambos SqlConfigurableRetryFactory.CreateNoneRetryProviderSqlConnectione SqlCommand . Você pode especificar um método de repetição diferente usando um arquivo de configuração.
Seções de configuração
As opções de lógica de repetição padrão para um aplicativo podem ser alteradas adicionando as seguintes seções dentro da configSections seção do arquivo de configuração:
-
SqlConfigurableRetryLogicConnection: para especificar a lógica de repetição padrão para SqlConnection.
<section name="SqlConfigurableRetryLogicConnection"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryConnectionSection, Microsoft.Data.SqlClient"/>
-
SqlConfigurableRetryLogicCommand: para especificar a lógica de repetição padrão para SqlCommand.
<section name="SqlConfigurableRetryLogicCommand"
type="Microsoft.Data.SqlClient.SqlConfigurableRetryCommandSection, Microsoft.Data.SqlClient"/>
Observação
As configurações a seguir devem ser especificadas dentro da configuration seção . Declare essas novas seções para configurar a lógica de repetição padrão por meio de um arquivo de configuração do aplicativo.
Secção Ligação
Os seguintes atributos podem ser usados para especificar a lógica de repetição padrão para todas as SqlConnection instâncias em um aplicativo:
numberOfTries: define o número de vezes a tentar.
deltaTime: define o intervalo de tempo de intervalo como um TimeSpan objeto.
minTime: define o intervalo de tempo de intervalo mínimo permitido como um TimeSpan objeto.
maxTime: define o intervalo de tempo de intervalo máximo permitido como um TimeSpan objeto.
transientErrors: define a lista de números de erro transitórios nos quais tentar novamente.
retryMethod: especifica um criador de método de repetição que recebe a configuração de repetição por meio de um SqlRetryLogicOption parâmetro e retorna um SqlRetryLogicBaseProvider objeto.
retryLogicType: define um provedor de lógica de repetição personalizado, que contém os criadores do método de repetição que fornecem o
retryMethod. Estes métodos devem satisfazer os critérios pararetryMethod. Deve ser utilizado o nome do tipo totalmente qualificado do prestador. Para obter mais informações, consulte Especificando nomes de tipo totalmente qualificados.
Observação
Não é necessário especificar se retryLogicType você usa os provedores de repetição internos. Para localizar os provedores de repetição internos, consulte Provedores lógicos de repetição internos em SqlClient.
Secção de comandos
O atributo a seguir também pode ser definido para todas as SqlCommand instâncias em um aplicativo:
- authorizedSqlCondition: Define uma expressão regular de pré-repetição para SqlCommand.CommandText filtrar instruções SQL específicas.
Observação
A expressão regular diferencia maiúsculas de minúsculas.
Examples
Tenta estabelecer uma conexão até três vezes com um atraso aproximado de 1 segundo entre as tentativas usando o SqlConfigurableRetryFactory.CreateFixedRetryProvider método e a lista de erros transitórios padrão:
<SqlConfigurableRetryLogicConnection retryMethod ="CreateFixedRetryProvider" numberOfTries ="3" deltaTime ="00:00:01"/>Tenta estabelecer uma conexão até cinco vezes com um atraso de até 45 segundos entre as tentativas usando o SqlConfigurableRetryFactory.CreateExponentialRetryProvider método e a lista de erros transitórios padrão:
<SqlConfigurableRetryLogicConnection retryMethod ="CreateExponentialRetryProvider" numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45"/>Tenta executar um comando até quatro vezes com um atraso entre 2 e 30 segundos usando o SqlConfigurableRetryFactory.CreateIncrementalRetryProvider método e a lista de erros transitórios padrão:
<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider" numberOfTries ="4" deltaTime ="00:00:02" maxTime ="00:00:30"/>Tentativas de executar um comando até oito vezes com um atraso de um segundo a um minuto. Limita-se a comandos com
CommandTexta palavraSELECTe os números de exceção 102 ou 997. Ele usa o método embutido SqlConfigurableRetryFactory.CreateIncrementalRetryProvider :<SqlConfigurableRetryLogicCommand retryMethod ="CreateIncrementalRetryProvider" numberOfTries ="8" deltaTime ="00:00:01" maxTime ="00:01:00" transientErrors="102, 997" authorizedSqlCondition="\b(SELECT)\b"/>
Observação
Nos próximos dois exemplos, você pode encontrar o código-fonte da lógica de repetição personalizada das APIs principais da lógica de repetição configurável no SqlClient. Supõe-se que o CreateCustomProvider método é definido na CustomCRL_Doc.CustomRetry classe no CustomCRL_Doc.dll assembly que está no diretório de execução do aplicativo.
Tenta estabelecer uma conexão até cinco vezes, com um atraso entre 3 e 45 segundos, números de erro 4060, 997 e 233 na lista e usando o provedor de repetição personalizado especificado:
<SqlConfigurableRetryLogicConnection retryLogicType ="CustomCRL_Doc.CustomRetry, CustomCRL_Doc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" retryMethod ="CreateCustomProvider" numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45" transientErrors ="4060, 997, 233"/>Este exemplo se comporta como o anterior:
<SqlConfigurableRetryLogicConnection retryLogicType ="CustomCRL_Doc.CustomRetry, CustomCRL_Doc" retryMethod ="CreateCustomProvider" numberOfTries ="5" deltaTime ="00:00:03" maxTime ="00:00:45" transientErrors ="4060, 997, 233"/>
Observação
Os provedores lógicos de repetição serão armazenados em cache no primeiro uso em uma conexão ou comando para uso futuro durante o tempo de vida de um aplicativo.
Observação
Quaisquer erros ao ler um arquivo de configuração do aplicativo para configurações lógicas de repetição não causarão erros no aplicativo. O padrão SqlConfigurableRetryFactory.CreateNoneRetryProvider será usado em vez disso.
Você pode usar o rastreamento de origem de eventos para verificar ou solucionar problemas com a configuração da lógica de repetição. Para obter mais informações, consulte Habilitar rastreamento de eventos em SqlClient.