Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   mysql.pas - Timeout für mysql_real_connect() (https://www.delphipraxis.net/163446-mysql-pas-timeout-fuer-mysql_real_connect.html)

Caps 29. Sep 2011 08:50

Datenbank: MySQL • Version: 5 • Zugriff über: mysql.pas

mysql.pas - Timeout für mysql_real_connect()
 
Guten Morgen,

ich benutze mysql.pas für meinen DB-Zugriff.
Nun ist meine Datenbank offline und ich dachte, da könnte ich ja mal die Robustheit meines Programms testen, aber leider finde ich nicht die Stelle, wo ich den Timeout für eine nicht zustandekommende DB-Verbindung einstellen kann. So wie es aussieht, bleibt das Programm beim Aufruf von mysql_real_connect() hängen.

In der mysql.pas gibt es Konstanten, deren Name "timeout" enthält. Ich habe sie folgendermaßen gesetzt:

Code:
NET_READ_TIMEOUT = 5;      // Timeout on read
NET_WRITE_TIMEOUT = 5;     // Timeout on write
NET_WAIT_TIMEOUT = 5; // Wait for new query
Ich nehme mal an, dass es sich um Sekunden und nicht um Jahre handelt...?
Die Einstellungen hatten leider - nach Neucompilieren der Unit - nicht die gewünschte Auswirkung, ich nehme deshalb an, dass ich an einer anderen Stelle Änderungen vornehmen muss.

Meine Frage nochmal konkret und in Kurzform:
An welcher Stelle (in der mysql.pas ??) kann ich den Timeout einstellen, der bestimmt, nach welcher Zeit ein Verbindungsversuch mit dem MySQL-Server abgebrochen wird, falls die Verbindung nicht zustandekommt?

Es dankt herbstlich
Caps

Caps 30. Sep 2011 09:59

AW: mysql.pas - Timeout für mysql_real_connect()
 
Keine User von mysql.pas hier, deren Datenbank auch mal offline sein könnte?

Push :hi:

samso 30. Sep 2011 10:44

AW: mysql.pas - Timeout für mysql_real_connect()
 
Diese Konstanten sind "read only". D.h. das Ändern der Konstanten bringt nur dann was, wenn man die libmysql.dll neu compiliert.
Das Ändern des Timeout sollte über die Funktion "mysql_options" funktionieren (siehe MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT). Ich habe aber kein Erfahrung, ob das etwas bringt. Bei meinen Programmen sind die Abfragen in Threads verlegt, so das der Benutzer auch bei einer verzögerten Abfrage nicht vor einer nicht reagierenden Anwendung sitzen muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz