Wir verwenden InterBase auf einem Windows 2003-Server und in unregelmäßigen Abständen dauert die Clientverbindung zum Server 180 Sekunden (drei Minuten) länger als üblich. Die Anwendung „hängt“ nicht mit der normalen Windows-Warnung in der Titelleiste und läuft nach der Verzögerung problemlos weiter.
Nun scheint die Rate gestiegen zu sein, seit einige Windows 2008-Server zum Netzwerk hinzugefügt wurden.
Da andere Anwendungen im Netzwerk keine ähnlichen „Hänger“ aufweisen, vermute ich, dass es an der (virtuellen) Maschine oder am Serverprozess selbst liegt. Wir verwenden dieselbe InterBase-Datenbank-Client- und Serversoftwareversion in einem anderen Netzwerk ohne Probleme, daher ist mein erstes Interessengebiet das Netzwerk (TCP/IP) der Maschine. Aus demselben Grund glaube ich nicht, dass es sich um ein DNS-Problem handelt, oder ist dies ein weiterer Kandidat?
Gibt es mögliche technische Erklärungen für eine solche Verzögerung, beispielsweise als Folge einer vollen Netzwerkpufferwarteschlange?
netstat -s zeigt erfolglose Verbindungsversuche an und weist auf den Empfang von null verlorenen Datagrammen hin.
IPv4-Statistik
Empfangene Pakete = 1267651308
Empfangene Vorspannfehler = 0
Empfangene Adressfehler = 44827
Weitergeleitete Datagramme = 0
Empfangene unbekannte Protokolle = 0
Empfangene verworfene Pakete = 0
Empfangene übermittelte Pakete = 1267651006
Ausgabeanforderungen = 1097296840
Verworfene Routingpakete = 0
Verworfene Ausgabepakete = 0
Ausgabepakete ohne Routing = 0
Reassemblierung erforderlich = 14
Reassemblierung erfolgreich = 7
Reassemblierung erfolglos = 0
Erfolgreiche Datagrammfragmentierung = 7
Erfolglose Datagrammfragmentierung = 0
Erzeugte Fragmente = 14
ICMPv4-Statistik
Empfangen Gesendet
Meldungen 26579 26678
Fehler 0 0
Ziel nicht erreichbar 0 95
Zeitüberschreitung 0 0
Parameterprobleme 0 0
Quelldrosselung 0 0
Umleitungen 0 0
Echos 60 26523
Echoantworten 26519 60
Zeiteinträge 0 0
Zeiteintragantworten 0 0
Adressmasken 0 0
Adressmaskenantworten 0 0
TCP-Statistik für IPv4
Aktiv geöffnet = 69080
Passiv geöffnet = 16751143
Erfolglose Verbindungsversuche = 363
Zurückgesetzte Verbindungen = 633
Aktuelle Verbindungen = 11
Empfangene Segmente = 1265427823
Gesendete Segmente = 1096717835
Erneut übertragene Segmente = 570293
UDP-Statistik für IPv4
Empfangene Datagramme = 2136945
Keine Anschlüsse = 98648
Empfangsfehler = 2680
Gesendete Datagramme = 50088
Antwort1
Eines der Dinge, nach denen ich immer suche, wenn ich sehe, dass eine Verbindung hängt, ist ein Fehler bei der umgekehrten DNS-Suche. Viele Anwendungen versuchen, den DNS-Namen eines verbindenden Clients direkt nach der Socket-Akzeptanz auf der Serverseite aufzulösen. Wenn DNS nicht richtig aufgelöst wird, kann es zu einem Hängen kommen, nach dem alles scheinbar normal und ohne Probleme weiterläuft. Ich habe dies bei einer Vielzahl von Anwendungsdiensten gesehen. Die von Ihnen erwähnte Zeitverzögerung von 3 Minuten scheint für dieses Szenario etwas lang zu sein. Die typische Verbindungsverzögerung, die ich sehe, beträgt weniger als 1 Minute.
Antwort2
Das Problem verschwand, als wir den Datenbankserver neu installierten.