Symptômes
Lorsque vous essayez de vous connecter à Microsoft SQL Server 2012 via un écouteur de groupe de disponibilité AlwaysOn à partir d’une application cliente, un message d’erreur de délai d’ouverture de session peut s’afficher.
Par exemple, lorsque vous utilisez la commande SqlCmd, vous pouvez recevoir le message d’erreur suivant :
Remarque
Sqlcmd : Erreur : Microsoft SQL Native Client : Le délai de connexion a expiré.
Remarque
[Microsoft][SQL Server Native Client 11.0]Impossible de terminer le processus de connexion en raison d’un retard dans l’ouverture de la connexion au serveur
Lorsque vous utilisez une application Microsoft .NET Framework 3.5 ou Microsoft .NET Framework 4.0 à l’aide du fournisseur de données .NET Framework pour SQL Server, le message d’erreur suivant peut s’afficher :
Remarque
Expiration du délai d’attente. Le délai d'expiration s'est produit avant la fin de l'opération ou le serveur ne répond pas.
sur System.Data.SqlClient.SqlInternalConnection.OnError(Exception SqlException, Boolean breakConnection)
sur System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
sur System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
sur System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)
sur System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()
sur System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean& marsCapable)
sur System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
sur System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject, Boolean withFailover)
sur System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
sur System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
sur System.Data.SqlClient.SqlInternalConnectionTds..ctor(identity identité, SqlConnectionString connectionOptions, object providerInfo, string newPassword, String owningObject, Boolean redirectedUserInstance)
Remarque Si vous augmentez le délai d’expiration de la connexion à 30 secondes, l’application cliente prend environ 20 secondes pour se connecter correctement.
Ces symptômes se produisent lorsque les conditions suivantes sont remplies :
- Votre groupe de disponibilité est défini dans un sous-réseau multi-réseau.
- Vous avez spécifié le paramètre MultiSubnetFailover lorsque vous vous connectez.
- Vous disposez d’un pilote de filtre TDI (Transport Driver Interface) actif qui est installé sur la station de travail de l’application cliente.
Cause
Ce problème se produit parce que le pilote Tdx.sys ne gère pas correctement la fonction Closesocket() lorsque la fonction est appelée au milieu d’une liaison TCP/IP.
Résolution
Informations sur le correctif logiciel
Un correctif logiciel pris en charge est disponible auprès de Microsoft. Toutefois, il est conçu uniquement pour corriger le problème décrit dans cet article. N'appliquez ce correctif qu'aux systèmes sur lesquels vous constatez le problème décrit dans le présent article. Ce correctif logiciel va peut-être subir des tests supplémentaires. Ainsi, si vous n'êtes pas sérieusement concerné par ce problème, il est recommandé d'attendre la prochaine mise à jour logicielle qui contiendra ce correctif.
Si le correctif logiciel est disponible en téléchargement, une section « Téléchargement de correctif logiciel disponible » figure en haut du présent article de la Base de connaissances. Si cette section est absente, procurez-vous le correctif logiciel auprès des services de Support technique Microsoft.
Remarque Si des problèmes supplémentaires surviennent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support s'appliqueront aux autres questions et problèmes du support non directement liés au correctif logiciel en question. Pour obtenir la liste complète des numéros de téléphone du service clientèle et du support technique Microsoft ou pour créer une demande de service distincte, visitez le site web Microsoft suivant :
http://support.microsoft.com/contactus/?ws=support Remarque Le formulaire « Téléchargement du correctif logiciel disponible » affiche les langues pour lesquelles le correctif est disponible. Si votre langue n'est pas répertoriée, cela signifie qu'aucun correctif logiciel n'est disponible pour cette langue.
Configuration requise
Pour appliquer ce correctif, vous devez exécuter Windows 7 SP1 ou Windows Server 2008 R2 SP1.
Pour plus d’informations sur la procédure permettant d’obtenir un Service Pack Windows 7 ou Windows Server 2008 R2, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
976932 Informations sur le Service Pack 1 pour Windows 7 et pour Windows Server 2008 R2
Informations sur le Registre
Pour appliquer ce correctif logiciel, vous n’avez pas besoin d’apporter de modifications au Registre.
Nécessité de redémarrer
Vous devez redémarrer l'ordinateur après l'application de ce correctif logiciel.
Informations sur le remplacement des correctifs logiciels
Ce correctif logiciel ne remplace pas un correctif logiciel publié précédemment.
Informations sur le fichier
La version internationale de ce correctif logiciel installe des fichiers dont les attributs sont répertoriés dans les tableaux ci-dessous. Les date et heure de création de ces fichiers sont exprimées en temps universel coordonné (UTC). Les date et heure de ces fichiers s’affichent sur votre ordinateur local conformément à l’heure locale et en tenant compte de l’heure d’été. En outre, ces date et heure peuvent changer lorsque vous effectuez certaines opérations sur les fichiers.
Notes d’informations sur les fichiers Windows 7 et Windows Server 2008 R2
D'importants correctifs pour Windows 7 et Windows Server 2008 R2 sont contenus dans les mêmes packages. Toutefois, les correctifs de la page Demande de correctifs sont répertoriées pour les deux systèmes d'exploitation. Pour demander le package de correctifs logiciels qui s'applique à l'un des systèmes d'exploitation ou aux deux, sélectionnez le correctif logiciel répertorié sous Windows 7/Windows Server 2008 R2 sur la page. Reportez-vous systématiquement à la liste des produits concernés pour déterminer le système d'exploitation auquel les différents correctifs logiciels s'appliquent.
Vous pouvez identifier les fichiers qui s'appliquent à un produit spécifique, SR_Level (RTM, SPn) et à un dossier (LDR, GDR) en examinant les numéros de version des fichiers tels qu'ils apparaissent dans le tableau suivant.
Version Produit Jalon Service branch 6.1.760
1.22xxxWindows 7 et Windows Server 2008 R2 SP1 LDR Les fichiers MANIFEST (.manifest) et MUM (.mum) qui sont installés pour chaque environnement sont répertoriés séparément dans la section « Informations sur les fichiers supplémentaires pour Windows 7 et Windows Server 2008 R2 ». Les fichiers MUM et MANIFEST, ainsi que les fichiers du catalogue de sécurité associés (.cat), sont extrêmement importants pour conserver l'état du composant mis à jour. Les fichiers du catalogue de sécurité pour lesquels les attributs ne sont pas répertoriés sont dotés d’une signature numérique Microsoft.
Pour toutes les versions x86 prises en charge de Windows 7
| Nom de fichier | Tdx.sys |
|---|---|
| Version de fichier | 6.1.7601.22382 |
| Taille du fichier | 74 752 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 09:17 |
| Plateforme | x86 |
Pour toutes les versions x64 prises en charge de Windows 7 et Windows Server 2008 R2
| Nom de fichier | Tdx.sys |
|---|---|
| Version de fichier | 6.1.7601.22382 |
| Taille du fichier | 118,272 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 09:35 |
| Plateforme | x64 |
Pour toutes les versions IA-64 prises en charge de Windows Server 2008 R2
| Nom de fichier | Tdx.sys |
|---|---|
| Version de fichier | 6.1.7601.22382 |
| Taille du fichier | 236,544 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 03:09 |
| Plateforme | IA-64 |
Solution de contournement
Pour contourner ce problème, appliquez l'une des méthodes suivantes :
- Augmentez le délai d’attente de connexion de votre application à 30 secondes.
- La fonctionnalité TDI est déconseillée dans Windows Vista, Windows Server 2008 ou une version ultérieure de Windows. Vous pouvez utiliser les pilotes basés sur la plateforme de filtrage Windows (PAM) à la place. Contactez le fournisseur du pilote de filtre TDI installé pour demander des informations sur les mises à niveau du produit qui implémentent la nouvelle plateforme de filtrage Windows. Mettez à niveau le produit, si possible.
- Remplacez la TDI en utilisant un produit comparable qui a implémenté la plateforme de filtrage Windows.
- Définissez la propriété RegisterAllProvidersIP sur 0 pour la ressource d’écouteur de groupe de disponibilité dans le cluster Windows. Lorsque la propriété RegisterAllProvidersIP est définie sur 0, vous n’avez pas besoin de spécifier le paramètre MultiSubnetFailover. Pour plus d’informations sur cette solution de contournement, accédez au site web MSDN suivant :
Créer ou configurer un écouteur de groupe de disponibilité (SQL Server)
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».
Informations supplémentaires
Pour plus d’informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft
Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft ne fournit aucune garantie, implicite ou autre, relative aux performances et à la fiabilité de ces produits.
Informations supplémentaires sur les fichiers
Informations sur les fichiers supplémentaires pour Windows 7 et Windows Server 2008 R2
Fichiers supplémentaires pour toutes les versions x86 prises en charge de Windows 7
| Nom de fichier | X86_2c94e745aaec3431931d51020305e2b9_31bf3856ad364e35_6.1.7601.22382_none_6fcc2f6025233efa.manifest |
|---|---|
| Version de fichier | Non applicable |
| Taille du fichier | 702 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 1,726 |
| Plateforme | Non applicable |
| Nom de fichier | X86_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec81028053b014a1.manifest |
| Version de fichier | Non applicable |
| Taille du fichier | 2,924 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 11:37 |
| Plateforme | Non applicable |
Fichiers supplémentaires pour toutes les versions x64 prises en charge de Windows 7 et Windows Server 2008 R2
| Nom de fichier | Amd64_fe6f131c914351fbcf6c3bc973329866_31bf3856ad364e35_6.1.7601.22382_none_a8b3dc126d52c78a.manifest |
|---|---|
| Version de fichier | Non applicable |
| Taille du fichier | 706 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 1,726 |
| Plateforme | Non applicable |
| Nom de fichier | Amd64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_489f9e040c0d85d7.manifest |
| Version de fichier | Non applicable |
| Taille du fichier | 2,926 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 12:33 |
| Plateforme | Non applicable |
Fichiers supplémentaires pour toutes les versions IA-64 prises en charge de Windows Server 2008 R2
| Nom de fichier | Ia64_649247023b89e8d48b1a96bffe9b85cd_31bf3856ad364e35_6.1.7601.22382_none_a9a13e5e5a562b37.manifest |
|---|---|
| Version de fichier | Non applicable |
| Taille du fichier | 704 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 1,726 |
| Plateforme | Non applicable |
| Nom de fichier | Ia64_microsoft-windows-tdi-over-tcpip_31bf3856ad364e35_6.1.7601.22382_none_ec82a67653ae1d9d.manifest |
| Version de fichier | Non applicable |
| Taille du fichier | 2,925 |
| Date (UTC) | 12-Juil-2013 |
| de redémarrage (UTC) | 11:35 |
| Plateforme | Non applicable |