Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Komponente - Serverdisconnect? (https://www.delphipraxis.net/7719-mysql-komponente-serverdisconnect.html)

DjGL 20. Aug 2003 03:02


MySQL Komponente - Serverdisconnect?
 
Hi!

Ich betreibe zuhause einen kleinen Webserver und programmiere ausserdem recht häufig in Delphi.

Aber wie kommt es das keine der mir bekannten MySQL Komponenten (nicht Zeos und auch nicht TMySQLClient) es bemerken wenn der MySQL Server offline geht?

Hat jemand einen Lösungsvorschlag oder eine Anmerkung zu diesem Thema?

MFG
Dj_GL

barnti 26. Aug 2003 15:49

Re: MySQL Komponente - Serverdisconnect?
 
Hi,

versuche doch mal die Komponenten für den direkten Zugriff:

http://www.microolap.com/products/dac/mysqldac.htm

Ich hoffe das hilft,
viel Spaß,

Barnti

Memo 26. Aug 2003 16:57

Re: MySQL Komponente - Serverdisconnect?
 
Zitat:

Zitat von barnti
Hi,

versuche doch mal die Komponenten für den direkten Zugriff:

http://www.microolap.com/products/dac/mysqldac.htm

Ich hoffe das hilft,
viel Spaß,

Barnti

Nein das hilft nicht. Ich hab mir diese Komponenten schon vor einer Weile gekauft. Glaub mir der Effekt ist dort nicht anders.
Bei den Delphi-groups gab es mal einen Lösungsansatz. Es war zwar mit den Ado's, aber im Kern ging es um das gleiche Problem.

barnti 26. Aug 2003 17:23

Re: MySQL Komponente - Serverdisconnect?
 
Hi,

kannst Du Dein Problem vielleicht genauer schildern? Wenn der Server nicht mehr online ist erhälst Du sicher einen Fehler...
Willst Du diesen vor einenm Verbindungsaufbau testen? Oder was genau ist dabei Dein Anliegen?

Memo 26. Aug 2003 17:49

Re: MySQL Komponente - Serverdisconnect?
 
Ich bin zwar nicht der Fragesteller, aber ich kenne das Problem, also antworte ich dir mal.
Du hast einen MySQL-Server(nicht localhost). In deinem Delphi-Prog. hast du deine Connection zu DB hergestellt. Die Verbindung steht und nun zieht dir ein gemeiner Mensch das Netzwerkkabel aus der Dose. Nun ist es egal ob du Zeos- oder Microolapkompos hast. Sie bekommen vom disconnect zum Server nicht's mit. Darum geht es.
Du wirst jetzt sicher sagen: "das mit dem Kabel ist ziemlich weit hergeholt". Aber:
Bei mir ist es so, das meine DB im Internet steht. Verbunden werde ich über einen Proxy. Wenn sich eine Weile nichts getan hat, legt der Proxy einfach auf und das Programm kommt an der Stelle nicht mehr weiter, weil es garnicht weiss, das ein disconnect stattgefunden hat um neu zu connecten.

DjGL 26. Aug 2003 18:03

Re: MySQL Komponente - Serverdisconnect?
 
Nein ich bekomme keinen fehler gar nichts.... nicht mal nach einiger Zeit.

Mal abgesehen davon das jemand das Netzwerkkabel abzieht ....
Auch wenn ich den MySQL Server ganz normal herunterfahre reagiert die Komponente nicht darauf.

Und das muss die Komponente doch merken wenn die TCP Verbindung futsch ist.

Memo 26. Aug 2003 18:16

Re: MySQL Komponente - Serverdisconnect?
 
Zitat:

Zitat von DjGL
Nein ich bekomme keinen fehler gar nichts.... nicht mal nach einiger Zeit. Auch wenn ich den MySQL Server ganz normal herunterfahre reagiert die Komponente nicht darauf.

Wenn man garnichts tut, kann auch kein Fehler kommen. Poste mal irgendeine Änderung. Und sag jetzt bitte nicht es kommt kein Fehler.

Zitat:

Zitat von DjGL
Mal abgesehen davon das jemand das Netzwerkkabel abzieht ....

Das war ein Bsp. damit du dir nicht den Kopf zerbrechen mußt, wie man die Umgebung für einen reproduzirbaren Fehler herstellt.

Zitat:

Zitat von DjGL
Und das muss die Komponente doch merken wenn die TCP Verbindung futsch ist.

Genau da liegt der Hase im Pfeffer. Sie merkt es nicht.

Chewie 26. Aug 2003 18:35

Re: MySQL Komponente - Serverdisconnect?
 
Eine Komponente merkt es genau dann, wenn sie eine Art Pingsystem benutzt. Wie soll sie auch merken, dass der Server offline geht, der Server kann in diesem Fall ja nicht Bescheid sagen :wink:

Wie gesagt, einzige Möglichkeit: in regelmäßigen Abständen wird eine kleine Anfrage an den Server geschickt. Kommt ein Ergebnis, läuft der Server, ansonsten nicht.
Natürlich sollte diese Anfrage möglichst wenig Traffic verursachen und möglichst wenig Rechenleistung des Servers beanspruchen.

DjGL 26. Aug 2003 18:36

Re: MySQL Komponente - Serverdisconnect?
 
Jahaaaa ich weiß ja das Sie es nicht merkt aber gibts da keinen Lösungsansatz dafür?

Ich mein ich habs jetzt mal mit nem Clientsocket gemacht der einfach parallel zur MySQL Komponente eine Verbindung aufbaut ..... aber das ist halt mehr ne Notlösung.

DjGL 26. Aug 2003 18:37

Re: MySQL Komponente - Serverdisconnect?
 
Nein ob eine TCP Verbindung abreist kann man auch ohne Ping oder ähnlichem feststellen.

TCP ist ja Verbindungsorientiert ....

Chewie 26. Aug 2003 18:41

Re: MySQL Komponente - Serverdisconnect?
 
Zitat:

Zitat von DjGL
Nein ob eine TCP Verbindung abreist kann man auch ohne Ping oder ähnlichem feststellen.

TCP ist ja Verbindungsorientiert ....


Wenn ich die Spezifikationen noch richtig im Kopf habe, gibt es keine periodisch ausgetauschten TCP-Pakete beim TCP-Protokoll. Will man das Abreisen einer Verbindung automatisch feststellen, muss das von einer höheren Netzwerkschicht übernommen werden. Offensichtlich macht das MySQL nicht.
Verbdinungsorientiert bedeutet bei TCP, dass zunächst einmal die Verbindung ausgehandelt wird (Stichwort: Handshake) und jedes empfangene Paket quittiert wird.

DjGL 26. Aug 2003 18:45

Re: MySQL Komponente - Serverdisconnect?
 
Gut dann sag mir warum der ClientSocket ganz normal bemerkt wenn der MySQL Server offline geht?????

Außerdem sollte eine MySQl Komponente zumindest schon merken wenn der MySQL Server ganz normal heruntergefahren wird.

DjGL 26. Aug 2003 18:48

Re: MySQL Komponente - Serverdisconnect?
 
Außerdem arbeite ich inzwischen doch schon 4 Jahre mit TCP Sockets also sollte ich das schon wissen

Memo 26. Aug 2003 18:49

Re: MySQL Komponente - Serverdisconnect?
 
Zitat:

Zitat von DjGL
Jahaaaa

Schrei doch nicht so.
Ich habe doch am Anfang einen Link eingestellt. Das Prinzip dort wäre ein Ansatz.
Den es besteht selbst nachdem man wie auch immer, bemerkt hat, das keine TCP/IP Verbindung mehr besteht, das Problem, die Komponente zu disconnecten.

DjGL 26. Aug 2003 18:52

Re: MySQL Komponente - Serverdisconnect?
 
Na das mach ich doch mit meinem ClientSocket auch bereits ..... aber ich dachte es gibt da vielleicht eine Erweiterung des Codes das der disconnect von der Komponente selbst erkannt wird.

Ich find das nicht lustig das man da hundert Sachen rundrumbasteln muss bis es funktioniert.

Chewie 26. Aug 2003 18:54

Re: MySQL Komponente - Serverdisconnect?
 
Wenn du dich mit dem TCP-Protokoll so gut auskennst, dann kannst du mir ja bestimmt sagen, wie das Paket eines periodischen Verbindungstest aufgebaut ist.

Memo 26. Aug 2003 19:02

Re: MySQL Komponente - Serverdisconnect?
 
Zitat:

Zitat von DjGL
Na das mach ich doch mit meinem ClientSocket auch bereits ..... aber ich dachte es gibt da vielleicht eine Erweiterung des Codes das der disconnect von der Komponente selbst erkannt wird.

Neihein

DjGL 26. Aug 2003 19:03

Re: MySQL Komponente - Serverdisconnect?
 
Wofür?

Der MySQL Client ist doch auch auf WinSock aufgebaut ... da ist doch die ganze Verbindung schon definiert und normalerweise sollte da zumindest normale disconnects auch erkannt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.

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