2009-06-17 7 views
0

Nous constatons un avertissement TCP/IP et de nombreuses erreurs de connexion sur notre serveur Web et SQL (Win 2008 SP1 avec IPv6 activé) et cela arrive plus souvent lorsque le processus de travail/Le processus du serveur SQL est en cours depuis plusieurs jours. Je me demande ce qui cause ces avertissements? Quel est le nombre de connexions TCP par défaut autorisé et comment pouvons-nous augmenter cela?TCP/IP n'a pas réussi à établir une connexion sortante

TCP/IP n'a pas réussi à établir une connexion sortante parce que le point final local sélectionné a été récemment utilisé pour se connecter au même point de terminaison distant. Cette erreur se produit généralement lorsque sortant connexions sont ouvertes et fermées à un taux élevé, ce qui provoque tous les ports locaux disponibles à utiliser et forcer TCP/IP à la réutilisation un port local pour une connexion sortante. Pour réduire le risque de corruption de données , la norme TCP/IP requiert une période minimale de entre les connexions successives à partir d'un point d'extrémité local donné jusqu'à un point d'extrémité distant donné.

Répondre

2

Il semble que vos connexions commencent à échouer et sont ensuite réessayées automatiquement. Si les tentatives se produisent assez rapidement, TCP peut parcourir toute la plage de ports et tous vos ports seront dans l'état TIME-WAIT (IIRC c'est ce que l'état a appelé, cela fait un petit moment que j'ai débogué TCP en détail).

Un couple de choses à comprendre d'abord:

  1. Qui est originaire de la connexion (s) et quels sont-ils censés être utilisé?
  2. Vérifiez les taux d'échec de connexion, j'ai tendance à utiliser Wireshark pour ce genre de chose.

Ensuite, vous devez rechercher des indices pour expliquer l'échec de la connexion. Probablement la connexion sortante est à un serveur, est le serveur opérationnel? Pourquoi le serveur n'accepterait-il pas la connexion - le processus/thread responsable de l'acceptation de la connexion est-il bloqué, bloqué sur quelque chose ou est-il sorti? Le réseau entre l'expéditeur et le serveur fonctionne-t-il normalement?

0

Voici la TechNet page pour cette erreur.

+0

Oui, j'ai vérifié cela avant de poster la question et cette page n'est pas très utile pour ce scénario. – awsomelisp

0

utilisez-vous quelque chose comme

setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) 

il vous permet de réutiliser la même prise deux fois sans avertissement

+0

merci Eric. Je n'ouvre aucune connexion tcp par moi-même. – awsomelisp

0

Cela me semble comme exactement ce que le message d'erreur indique ... vos ports sont épuisés . Cela implique BEAUCOUP de connexions sortantes.

La valeur par défaut est de ne pas limiter le nombre de connexions tcp (je suppose que vous n'êtes limité que par le nombre de ports, ports probablement 1024 à 65534)

Je commencer à enquêter sur la raison pour laquelle vous voyez tant de connexions sortantes en si peu de temps.

+0

Donc, ma question est de savoir combien de connexions sortantes pouvons-nous avoir au cours de la période 'x' et ce numéro est-il configurable? Si c'est le cas, où et comment? Je vois que le compteur de perf pour les échecs de connexion est trop élevé (150000) et la connexion établie est en <50, ce qui est très confus. Et comment puis-je distinguer b/w les connexions sortantes et entrantes? – awsomelisp

+0

Je commencerai par tcpmon de sysinternals ... cela vous donnera une idée de ce qui ouvre les connexions (en supposant que vous ne savez pas) Le compteur de perfs vous montre les symptômes ... vous devez trouver la cause :) –

Questions connexes