Programmierung mit mysql.h



  • Hallo.

    Ich versuche meine ersten Erfahrungen mit Mysql und C zu sammeln. Dazu verwende ich mysql.h.
    Soweit habe ich mit Hilfe der API relativ leicht meinen Code geschrieben und bin nun am Testen. Und jetzt habe ich folgenden Test durchgeführt und bin auf ein Problem gestoßen.
    Ich benutze den Befehl mysql_ping(). Dieser sollte 0 liefern, wenn die Verbindung okay ist und sonst eine Zahl ungleich null. Funktioniert soweit auch. Jetzt habe ich folgenden Test:
    Ich baue die Verbindung zum SQL-Server auf. Danach führe ich den Ping Befehl aus. Das funktioniert. Danach schließe ich das Netzwerkkabel von meinem PC ab und versuche erneut den Ping Befehl. Ich habe die Verbindung zuvor NICHT geschlossen. Das soll quasi einen Netzwerkausfall während dem Betrieb simulieren. Jetzt das Problem: mysql_ping() gibt jetzt nichts zurück und der Code bleib bei der mysql_ping() Funktion stehen. Habe jetzt mal 3 Minuten gewartet, aber es kommt nichts zurück.
    Wie kann man dem Abhilfe schaffen?

    Lg


  • Mod

    Wie lange willst du dem Test denn Zeit geben? Wenn du das entschieden hast:

    MySQL reference manual, 27.8.7.50 schrieb:

    MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int 😉

    The timeout in seconds for each attempt to read from the server. There are retries if necessary, so the total effective timeout value is three times the option value. You can set the value so that a lost connection can be detected earlier than the TCP/IP Close_Wait_Timeout value of 10 minutes.


Anmelden zum Antworten