Sintomas
Quando você tenta se conectar ao Microsoft SQL Server 2012 através de um ouvinte de grupo de disponibilidade do AlwaysOn de um aplicativo cliente, você pode enfrentar uma mensagem de erro de tempo limite de logon.
Por exemplo, quando você usa o comando SqlCmd , você receberá a seguinte mensagem de erro:
Sqlcmd: Erro: Microsoft SQL Native Client: tempo limite do logon expirou.
[Microsoft] [SQL Server Native Client 11.0] Não é possível completar o logon o processo devido a atraso na abertura da conexão com o servidor
Quando você usa um Microsoft baseado no.NET Framework 3.5 ou Microsoft aplicativos baseados no.NET Framework 4.0 usando o .net Framework Data provider para SQL Server, você pode receber a seguinte mensagem de erro:
Tempo limite expirou. O tempo limite esgotou antes da conclusão da operação ou o servidor não está respondendo.
no System.Data.SqlClient.SqlInternalConnection.OnError (exceção SqlException, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
no System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, erro UInt32)
no System.Data.SqlClient.TdsParserStateObject.ReadSni (asyncResult DbAsyncResult, TdsParserStateObject stateObj)
em System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
no System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake (Boolean criptografar, Boolean trustServerCert, Boolean & marsCapable)
no System.Data.SqlClient.TdsParser.Connect (informações de informações, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean criptografar, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
no System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (informações de informações, String newPassword, Boolean ignoreSniOpenTimeout, tempo limite de TimeoutTimer, SqlConnection owningObject, Boolean withFailover)
no System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (informações de informações, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, tempo limite de TimeoutTimer)
no System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnection owningObject, tempo limite de TimeoutTimer, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
no System.Data.SqlClient.SqlInternalConnectionTds... construtor (DbConnectionPoolIdentity identidade, SqlConnectionString connectionOptions, objeto providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
Observação: Se você aumentar o tempo limite de logon para 30 segundos, o aplicativo cliente leva aproximadamente 20 segundos para se conectar com êxito.
Esses sintomas ocorrem quando as seguintes condições forem verdadeiras:
-
O grupo de disponibilidade é definido em uma sub-rede múltipla.
-
O parâmetro MultiSubnetFailover pode ser especificado quando você se conectar.
-
Você tiver um driver de filtro do Driver Interface (TDI) de transporte ativo que está instalado na estação de trabalho do aplicativo cliente.
Causa
Esse problema ocorre porque o driver Tdx.sys não processa a função Closesocket() corretamente quando a função é chamada no meio de um handshake TCP/IP.
Resolução
Informações sobre o hotfix
Um hotfix compatível foi disponibilizado pela Microsoft. No entanto, esse hotfix destina-se a corrigir somente o problema descrito neste artigo. Aplique este hotfix somente nos sistemas que estiverem enfrentando o problema descrito neste artigo. Esta correção poderá ser submetida a testes adicionais. Portanto, se esse problema não o prejudicar, recomendamos que você aguarde a próxima atualização de software que contenha esse hotfix.
Se o hotfix estiver disponível para download, há uma seção "Download de Hotfix disponível" na parte superior deste artigo da Base de Conhecimento. Se essa seção não for exibida, entre em contato com o suporte e atendimento ao cliente Microsoft para obter o hotfix.
Observação: caso outros problemas estejam ocorrendo ou caso qualquer solução de problemas seja necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não sejam específicos deste hotfix. Para obter uma lista completa dos números de telefone do Atendimento Microsoft e suporte ou para criar uma solicitação de serviço separada, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=supportObservação: o formulário "Baixar Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Caso você não veja seu idioma, é porque um hotfix não está disponível para esse idioma.
Pré-requisitos:
Para aplicar esse hotfix, você deve estar executando o Windows 7 SP1 ou Windows Server 2008 R2 SP1.
Para obter mais informações sobre como obter um service pack do Windows 7 ou do Windows Server 2008 R2, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
976932 Informações sobre o Service Pack 1 para o Windows 7 e para o Windows Server 2008 R2
Informações do registro:
Para aplicar esse hotfix, não é necessário efetuar quaisquer alterações ao registro.
Requisitos de reinicialização:
Você deve reiniciar o computador após aplicar esse hotfix.
Informações de substituição do hotfix:
Esse hotfix não substitui um hotfix lançado anteriormente.
A versão global deste hotfix instala arquivos que possuam os atributos listados nas tabelas a seguir. As datas e horas desses arquivos estão listadas no Tempo Universal Coordenado (UTC). As datas e horas desses arquivos em seu computador local são exibidas em sua hora local com a diferença de horário de verão (DST) atual. Além disso, as datas e as horas podem ser alteradas quando você realizar determinadas operações nos arquivos.
Informações sobre o arquivo do Windows 7 e do Windows Server 2008 R2
Importante: os hotfixes do Windows 7 e Windows Server 2008 R2 estão incluídos nos mesmos pacotes. No entanto, os hotfixes na página solicitação de Hotfix estão listados em ambos os sistemas operacionais. Para solicitar o pacote de hotfix que se aplica a um ou ambos os sistemas operacionais, selecione o hotfix listado em "Windows 7/Windows Server 2008 R2" na página. Sempre consulte a seção "Aplica-se a" nos artigos para determinar o sistema operacional real que cada hotfix se aplica.
-
Os arquivos que se aplicam a um produto específico, SR_Level (RTM, SPn) e ramificação do serviço (LDR, GDR) podem ser identificados ao examinar os números de versão do arquivo conforme mostrado na tabela a seguir:
Versão
Produto
Etapa do projeto
Ramificação do serviço
6.1.760
versão 1.22 xxxWindows 7 e Windows Server 2008 R2
SP1
LDR
-
Os arquivos MANIFEST (.manifest) e os arquivos MUM (.mum) instalados para cada ambiente são listados separadamente na seção "Informações adicionais sobre arquivos para Windows 7 e Windows Server 2008 R2". MUM e arquivos de manifesto e os arquivos de catálogo (. cat) de segurança associadas são extremamente importantes para manter o estado do componente atualizado. Os arquivos do catálogo de segurança, para os quais os atributos não estejam listados, são assinados com uma assinatura digital da Microsoft.
Para todas as versões compatíveis do Windows 7 x86
Nome do Arquivo |
Tdx.sys |
Versão do arquivo |
6.1.7601.22382 |
Tamanho do arquivo |
74,752 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
09:17 |
Plataforma |
x86 |
Para todas as versões compatíveis do Windows 7 e do Windows Server 2008 R2 x86
Nome do Arquivo |
Tdx.sys |
Versão do arquivo |
6.1.7601.22382 |
Tamanho do arquivo |
118,272 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
09:35 |
Plataforma |
x64 |
Para todas as versões compatíveis do Windows Server 2008 R2 IA-64
Nome do Arquivo |
Tdx.sys |
Versão do arquivo |
6.1.7601.22382 |
Tamanho do arquivo |
236,544 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
09:03 |
Plataforma |
IA-64 |
Solução alternativa
Para contornar esse problema, use um dos seguintes métodos:
-
Aumente o tempo limite de logon do aplicativo para 30 segundos.
-
O recurso TDI foi substituído no Windows Vista, Windows Server 2008 ou uma versão posterior do Windows. Você pode usar os drivers de WFP Windows Filtering Platform. Contate o fornecedor do driver de filtro TDI instalado para solicitar informações sobre atualizações do produto que implementam a nova Windows Filtering Platform. Atualize o produto, se for possível.
-
Substitua a TDI, usando um produto comparável que implementou a Windows Filtering Platform.
-
Defina a propriedade RegisterAllProvidersIP como 0 para o recurso de escuta do grupo de disponibilidade do cluster do Windows. Quando a propriedade RegisterAllProvidersIP estiver definida como 0, você não precisa especificar o parâmetro MultiSubnetFailover . Para obter mais informações sobre essa solução, visite o seguinte site da MSDN:
Criar ou configurar um ouvinte de grupo de disponibilidade (SQL Server)
Status
A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".
Mais informações
Para obter mais informações sobre a terminologia de atualização de software, clique no número abaixo para ler o artigo na Base de Conhecimento da Microsoft:
824684 Descrição da terminologia padrão utilizada para descrever as atualizações de software da Microsoft
Os produtos de terceiros descritos neste artigo são fabricados por empresas que são independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, em relação ao desempenho ou à confiabilidade desses produtos.
Informações adicionais sobre os arquivos para o Windows 7 e para o Windows Server 2008 R2
Arquivos adicionais para todas as versões compatíveis do Windows 7 x86
Nome do Arquivo |
X86_2c94e745aaec3431931d51020305e2b9_31bf3856ad364e35_6.1.7601.22382_none_6fcc2f6025233efa.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
702 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
17:26 |
Plataforma |
Não aplicável |
Nome do Arquivo |
X86_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec81028053b014a1.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
2,924 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
11:37 |
Plataforma |
Não aplicável |
Arquivos adicionais para todas as versões do Windows 7 x64 e do Windows Server 2008 R2
Nome do Arquivo |
Amd64_fe6f131c914351fbcf6c3bc973329866_31bf3856ad364e35_6.1.7601.22382_none_a8b3dc126d52c78a.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
706 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
17:26 |
Plataforma |
Não aplicável |
Nome do Arquivo |
Amd64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_489f9e040c0d85d7.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
2,926 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
12:33 |
Plataforma |
Não aplicável |
Arquivos adicionais para todas as versões compatíveis do Windows Server 2008 R2 IA-64
Nome do Arquivo |
Ia64_649247023b89e8d48b1a96bffe9b85cd_31bf3856ad364e35_6.1.7601.22382_none_a9a13e5e5a562b37.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
704 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
17:26 |
Plataforma |
Não aplicável |
Nome do Arquivo |
Ia64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec82a67653ae1d9d.manifest |
Versão do arquivo |
Não aplicável |
Tamanho do arquivo |
2,925 |
Data (UTC) |
12-Jul-2013 |
Hora (UTC) |
11:35 |
Plataforma |
Não aplicável |