Ligação de tempo de espera quando utiliza o escuta de grupo de Disponibilidade AlwaysOn com o parâmetro MultiSubnetFailover

Sintomas

Quando tenta ligar a 2012 do Microsoft SQL Server através de um serviço de escuta do grupo de Disponibilidade AlwaysOn a partir de uma aplicação cliente, poderá detectar uma mensagem de erro de limite de tempo de início de sessão.

Por exemplo, quando utiliza o comando SqlCmd , poderá receber a seguinte mensagem de erro:

SQLCMD: Erro: Microsoft SQL Native Client: tempo limite de início de sessão expirou.

[Microsoft] [SQL Server Native Client 11.0] Início de sessão completo não é possível processar a atraso abrir ligação ao servidor


Quando utiliza uma Microsoft baseadas no .NET Framework 3.5 ou o Microsoft aplicação baseada no .NET Framework 4.0 utilizando o .net Framework Data provider para SQL Server, poderá receber a seguinte mensagem de erro:

Tempo limite expirou. O tempo limite decorreu antes da conclusão da operação ou o servidor não está a responder.
em System.Data.SqlClient.SqlInternalConnection.OnError (excepção de SqlException, Boolean breakConnection)
em System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
em System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, erro UInt32)
em System.Data.SqlClient.TdsParserStateObject.ReadSni (asyncResult de DbAsyncResult, TdsParserStateObject stateObj)
em System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
em System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake (Boolean encriptar, Boolean trustServerCert, Boolean & marsCapable)
em System.Data.SqlClient.TdsParser.Connect (informação de informação, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, boleano encriptar, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
em System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (informação de informação, NovaPalavra-passe de cadeia, boleano ignoreSniOpenTimeout, TimeoutTimer tempo de espera, SqlConnection owningObject, Boolean withFailover)
em System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (informação de informação, NovaPalavra-passe de cadeia, boleano redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer tempo de espera)
em System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (SqlConnection owningObject, TimeoutTimer tempo de espera, SqlConnectionString connectionOptions, NovaPalavra-passe de cadeia, Boolean redirectedUserInstance)
em System.Data.SqlClient.SqlInternalConnectionTds... construtor (identidade de DbConnectionPoolIdentity, SqlConnectionString connectionOptions, providerInfo do objecto, NovaPalavra-passe de cadeia, SqlConnection owningObject, Boolean redirectedUserInstance)



Nota Se aumentar o limite de tempo de início de sessão para 30 segundos, a aplicação cliente demora aproximadamente 20 segundos para estabelecer ligação com êxito.

Estes sintomas ocorrem quando se verificam as seguintes condições:

  • O grupo de disponibilidade é definido numa sub-rede múltiplas.

  • Especificar o parâmetro MultiSubnetFailover quando se liga.

  • Tem um controlador de filtro de Interface do controlador (TDI) de transporte activo que está instalado na estação de trabalho de aplicação de cliente.

Causa

Este problema ocorre porque o controlador de Tdx.sys não processam a função Closesocket() correctamente quando a função é chamada no meio de um handshake de TCP/IP.

Resolução

Informações sobre correção

Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correção apenas em sistemas que tenham o problema descrito neste artigo. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção.

Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente da Microsoft para obter a correção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte site da Microsoft:

Nota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

Pré-requisitos

Para aplicar esta correcção, tem de estar a executar o Windows 7 SP1 ou Windows Server 2008 R2 SP1.

Para mais informações sobre como obter um Windows 7 ou Windows Server 2008 R2 service pack, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:

Obter informações sobre o Service Pack 1 para Windows 7 e Windows Server 2008 R2

Informações de registo

Para aplicar esta correção, não é necessário efetuar alterações ao registo.

Requisito de reinício

Tem de reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição da correção

Esta correção não substitui uma correção disponibilizada anteriormente.

A versão global desta correção instala ficheiros que têm os atributos listados nas tabelas seguintes. As datas e horas destes ficheiros são listadas na Hora Universal Coordenada (UTC). As datas e horas destes ficheiros no computador local são apresentadas na hora local em conjunto com a compensação de hora de Verão (DST) atual. Além disso, as datas e horas podem ser alteradas quando são executadas determinadas operações nos ficheiros.

Notas informativas sobre os ficheiros do Windows 7 e Windows Server 2008 R2
Importante Correcções do Windows 7 e Windows Server 2008 R2 correcções são incluídas nos pacotes mesmos. No entanto, as correcções na página de pedido de correcção estão listadas em ambos os sistemas operativos. Para pedir o pacote de correcções que se aplica a um ou ambos os sistemas operativos, seleccione a correcção listada em "Windows 7/Windows Server 2008 R2" na página. Consulte a secção "Aplica-se a" nos artigos para determinar o sistema operativo real que cada correcção aplica-se para sempre.

  • Os ficheiros aplicáveis a um produto específico, SR_Level (RTM, SPn) e ramo de serviço (LDR, GDR) podem ser identificados examinando os números de versão do ficheiro, conforme mostrado na seguinte tabela:

  • Os ficheiros MANIFEST (. manifest) e MUM (. mum) instalados em cada ambiente é listados em separado na secção "Informações para o Windows 7 e Windows Server 2008 R2 ficheiros adicionais". MUM e ficheiros de MANIFESTO e os ficheiros de catálogo (. cat) de segurança associados, são extremamente importantes para manter o estado do componente actualizado. Os ficheiros de catálogo de segurança, para os quais os atributos não são listados são assinados com uma assinatura digital da Microsoft.

Solução alternativa

Para contornar este problema, utilize um dos seguintes métodos:

  • Aumente o limite de tempo de início de sessão da aplicação para 30 segundos.

  • A funcionalidade TDI foi preterida no Windows Vista, Windows Server 2008 ou uma versão posterior do Windows. Em vez disso, pode utilizar os controladores baseados no Windows WFP de plataforma de filtragem. Contacte o fornecedor do controlador de filtro TDI instalado para pedir informações sobre actualizações ao produto que implementam a nova plataforma de filtragem do Windows. Actualize o produto, se for possível.

  • Substitua o TDI utilizando um produto comparável que implementou a plataforma de filtragem do Windows.

  • Defina a propriedade RegisterAllProvidersIP para 0 para o recurso de serviço de escuta do grupo de disponibilidade do cluster do Windows. Quando a propriedade RegisterAllProvidersIP está definida como 0, não terá de especificar o parâmetro MultiSubnetFailover . Para mais informações sobre esta solução alternativa, visite o seguinte Web site da MSDN:

Estado

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais informações

Para mais informações sobre a terminologia de atualização de software, clique no seguinte número de artigo para visualizar o artigo na Base de Dados de Conhecimento Microsoft:

Descrição da terminologia padrão utilizada para descrever atualizações de software da Microsoft

Os produtos de outros fabricantes que este artigo aborda são fabricados por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, expressa ou implícita, relativamente, ao desempenho ou à fiabilidade destes produtos.

Informações sobre ficheiros adicionais para o Windows 7 e Windows Server 2008 R2

Ficheiros adicionais para todas as versões baseadas em x86 suportadas do Windows 7

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×