web-dev-qa-db-fra.com

Le nom de réseau spécifié n'est plus disponible

Nous avons une application qui accède à la base de données (Sql server 2014 enterprise edition). L'application appelle une procédure stockée pour accéder à la base de données. Tout fonctionnait bien jusqu'à récemment, commencez à envoyer l'erreur suivante et arrêtez les applications. Le redémarrage de l'application corrige le problème temporairement mais fait face à la même erreur.

Erreur: une erreur au niveau du transport s'est produite lors de la réception des résultats du serveur. (Fournisseur: TCP Fournisseur, erreur: 0 - Le nom de réseau spécifié n'est plus disponible.)

J'ai fait beaucoup de recherches que la plupart d'entre eux ont signalées comme un problème de réseau, mais je n'ai rien trouvé pour résoudre le problème. Est-ce que quelqu'un sait quel changement je devrais apporter à la base de données pour résoudre ce problème? J'apprécie fortement toutes les suggestions.

10

Cela ressemble à des problèmes de résolution DNS inégaux ou à de longues requêtes.

Pour le dépannage DNS

En tant que pansement et aide au dépannage, ajoutez et saisissez le fichier hosts sur vos serveurs d'applications (pas sur SQL Server) dans c:\windows\system32\drivers\etc

SQLServerIPAddress SQLServerName

Exemple:

172.16.0.5 ProductionSQLBox

De cette façon, le nom SQL Server sera résolu par le fichier hosts jusqu'à ce que vous puissiez trouver le vrai problème pour ce qui se passe avec la résolution de noms.

Assurez-vous de tester le fichier hosts en envoyant une requête ping à la zone SQL depuis le serveur d'applications via une ligne de commande. Ou, créez alternativement un DSN avec l'administrateur ODBC dans le Panneau de configuration et testez la connexion à cet endroit.

Pour les requêtes de longue durée

Implémentez une valeur de délai d'attente de commande plus longue pour les chaînes de connexion d'application se connectant à SQL Server.

Exemple

<connectionStrings> 
    <add name="webconfigconnectionString" connectionString="server=SQLServerName;database=dbName;uid=u‌​serName;password=ABC‌​123;Timeout=120" />
</connectionStrings>
8
Sting

Ce n'est pas un problème de base de données. Aucune modification du côté de la base de données ne peut résoudre ce problème. Cette erreur est due à une bande passante réseau élevée ou à une erreur dans votre application. Je vous suggère de transmettre cette erreur à votre équipe Wintel/Network de votre entreprise. Ils peuvent modifier le commutateur réseau ou gérer la bande passante réseau pour arrêter cette erreur.

6
user1987

Cela ressemble à un problème d'application.

Mon avis est que l'application part du principe que la connexion SQL est toujours disponible (pas de vérification ou de test avant d'exécuter des commandes) donc quand la ligne descend ou quoi que ce soit fait que la connexion baisse/ferme, l'application produit ce message.

Pour reproduire, tuez simplement la session SQL sur le serveur SQL et vous obtiendrez même chose un message similaire.

3
Paolo