Hi Leute
ich hätte da mal ne Frage: die geht recht tief in die Technik. Wer die Ausdrücke nicht kennt - einfach weiterklicken - habt einen schönen Tag. Das ist fettes Brot (evtl.)
Problem:
- von einem Programm aus (ist jetzt Access, kann irgendein VBA sein, Pascal oder C/C++) soll die Verfügbarkeit eines Server-Dienstes (!) geprüft werden.
- Klar: einfach einen ping auf die IP-Adresse und ich weiß, ob die Maschine läuft - hab ich schon.
- reicht leider nicht. Das ist ICMP/IP - das läuft. Tagsüber bricht aber die Leistung ein, obwohl die Maschinen keine Last haben.
Problem ist nämlich
- Maschine ist erreichbar, aber ein Dienst läuft nicht oder schlecht
- dito, aber der Dienst ist in Firewalls, Routing, VPN irgendwie (!) benachteiligt - er läuft nicht so schnell, wie er könnte.
- diese Funktion würde ich in Programmen benutzen, bevor der Dienst (z.B. SQL) abgefragt wird. Da gibt es Verzögerungen und ich weiß noch nicht, woher sie kommen - also Fehlersuche
Ping und Tracert fallen weg, weil sie nur auf der IP-Ebene laufen. Pech gehabt.
Wenn der Dienst aber läuft (und die Software dahinter nicht gerade abgeschmiert ist, möchte ich so was wie die Laufzeiten vergleichen können.
Meine Überlegung: ich baue eine TCP-Verbindung zu dem Dienst auf (könnte man sich vorstellen wie einen telnet [IP] [port] und schauen, wie lange das dauert. Das würde mir helfen.
Untendrunter wird erst mal der TCP-Handshake ausgeführt (SYN ACK SYN-ACK) , dann kämen die Daten - die brauche ich nicht. da könnte gleich ein FIN gesendet werden (oder unsauber eben nicht) und Feierabend.
Meine Frage: dieser Mechanismus müsste auf Win entweder in einem Kommandozeilen-Programm oder in einer der DLLs sowieso existieren - da will ich das Rad nicht neu erfinden.
Könnt ihr mir sagen, wo ich da anfange zu suchen?
Keine Frage - dann muss ich rausfinden, wer bremst usw - aber finden msus man ihn.
PS: Es geht nur um Basis-Dienste wie FTP, DNS, SMTP, SMB, hier: MySQL und solche Sachen.