Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Verbindung zum Server verloren... (https://www.delphipraxis.net/78469-verbindung-zum-server-verloren.html)

Angel4585 5. Okt 2006 14:26

Datenbank: MySQL • Version: 5 • Zugriff über: ZEOS

Verbindung zum Server verloren...
 
Hallo,

ich hab gerade das Problem das ich immerwieder zwischen zwei SQl-Abfragen scheinbar die Verbindung zum Server verliere.. und das obwohl dieser lokal auf meinem Rechner läuft und keine Fehler bringt!
Hab ich wiedermal was deaktiviert oder so was dieses Verhalten auslöst? Zusätzlich kommen noch Meldungen wie "Zugriffsverletzung auf Adresse 0 in LibMysql41.dll". Das ganze tritt nur sporadisch ohne irgendwelche Veränderungen alle paar Minuten auf.

den Server spreche ich obwohl er lokal installiert ist über die Netzwerkadresse des PCs an, also 192.168.... anstatt 127.0.0.1 da das ganze später über das Netzwerk aufm Server laufen soll.

Kann mir da jemand helfen ich bin echt am durchdrehen :(

Danke schonmal

:angel:

Edit: Also konkret:

Naben der Zugriffsverletzung bekomm ich die Fehler
"SQL Error: Lost Connection to MySQL-Server during Querie"

und

"SQL Error: Malformed packet"

Andidreas 5. Okt 2006 15:14

Re: Verbindung zum Server verloren...
 
mein vorschlag wäre jetzt mal, die libmysql41.dll durch die aus dem im zeos package enthaltene libmysql41.dll zu ersetzten...
die libmysql41.dll müsstest du ja unter C:\Windows\system32 haben.... vielleicht hat die irgend ne macke?!

btw
du wirst ja wahrscheinlich auch die zeos version 6.5.1 alpha CVS as of 13/10/2005 haben, ist die überhaupt für mysql 5 geeignet???

Angel4585 5. Okt 2006 15:22

Re: Verbindung zum Server verloren...
 
naja der Server läuft auf MySQl 5, aber die Kompos machen 4.1, es funktioniert alles soweit, nur seit einigen Tagen kommen diese Fehler. Ich vermute das es damit zusammenhängt das ich einmal aus dem Hauptprogramm und einmal aus nem Thread heraus auf die Datenbank zugreife, ich bin jetzt daran folgende zeile vor jedem aktivieren der Queries einzufügen:

Delphi-Quellcode:
    while Connection.InTransaction do
      Application.ProcessMessages;
vllt kommt der Fehler weil aus irgendweinem Grund eine Connection 2-3 Abfragen gleichzeitig bekommt :?

das mit der DLL tauschen hab ich schon paarmal probiert, hab die von den ZEOS genommen und welche runtergeladen, aber der Fehler bleibt.

Kann das auch ein Hardware-Problem sein?

Bernhard Geyer 5. Okt 2006 15:27

Re: Verbindung zum Server verloren...
 
Ich würde mal propieren für jeden Thread eine eigene Verbindung aufzubauen und die Queries über die Thread-Lokale verbindung laufen zu lassen.

Angel4585 5. Okt 2006 15:34

Re: Verbindung zum Server verloren...
 
Das problem hierbei ist:

Wenn das ganze später über den Server laufen soll, braucht das ganze für jeden Verbindungsaufbau zum Server ca. 20 Sekunden. Das liegt scheinbar an der Server-Hardware bzw am BS(WinNT). Und das jeweils für Threads und Hauptprogramm. Deswegen nutze ich seit einiger Zeit nur eine Connection.

Bernhard Geyer 5. Okt 2006 15:39

Re: Verbindung zum Server verloren...
 
Zitat:

Zitat von Angel4585
Wenn das ganze später über den Server laufen soll, braucht das ganze für jeden Verbindungsaufbau zum Server ca. 20 Sekunden. Das liegt scheinbar an der Server-Hardware bzw am BS(WinNT). Und das jeweils für Threads und Hauptprogramm. Deswegen nutze ich seit einiger Zeit nur eine Connection.

Das Problem wird aber sein das entweder Implementierung der Zeos-Komponenten hier nicht Thread-Save sind oder auch die libmysql-DLL nicht Connection und Query aus unterschiedlichen Threads verträgt.

Probier testhalber mal MyDAC aus. U.u. können die das ja.

Arbeitest du mit Rechnernamen oder IP-Adressen? Falls das Problem mit der Namensauflösung gegen ist so bestimm dir doch einmal aufgrund des Namens die IP und gut.

Angel4585 5. Okt 2006 15:45

Re: Verbindung zum Server verloren...
 
um von ZEOS auf MyDAC umzustellen ist es ein bisschen zu spät, da ich jetzt schon etwa um die 40 Queries verwende und diese voll in meinem Projekt verankert sind.

Ich arbeite mit IP-Adressen, also ist das Problem der Namensauflösung schonmal ausgeschlossen.

Bernhard Geyer 5. Okt 2006 15:50

Re: Verbindung zum Server verloren...
 
Zitat:

Zitat von Angel4585
um von ZEOS auf MyDAC umzustellen ist es ein bisschen zu spät, da ich jetzt schon etwa um die 40 Queries verwende und diese voll in meinem Projekt verankert sind.

40, mehr nicht :-)
Aber evtl. kannst du ja ein ableitung der Query-Komponenten schreiben um die Querys von Zeos und MyDAC für Tests kompatible macht.

Angel4585 5. Okt 2006 15:54

Re: Verbindung zum Server verloren...
 
Also irgendwie versteh ich das Ganze grad nicht...

Es geht ja aus den Threads heraus.. nur wenn ich im Hauptprogramm was mache und gleichzeitig im Thread was passiert kommen die Fehler.. gibt es eine effektive Möglichkeit mit der die Abfragen sich quasi bei der Connection "stauen" und die ganz automatisch nacheinander abgearbeitet werden?

Edit: BTW: 40 pro DataModul, und jedes Formular auf dem Daten sind hat dieses DataModul einmal für sich.. bei 10 geöffneten Formularen sind wir schon bei 400 Queries ;) aber das ist nicht das problem.. das funktioniert alles und ist an sich ein schönes Paket..

Bernhard Geyer 5. Okt 2006 16:00

Re: Verbindung zum Server verloren...
 
Zitat:

Zitat von Angel4585
Also irgendwie versteh ich das Ganze grad nicht...

Es geht ja aus den Threads heraus.. nur wenn ich im Hauptprogramm was mache und gleichzeitig im Thread was passiert kommen die Fehler.. gibt es eine effektive Möglichkeit mit der die Abfragen sich quasi bei der Connection "stauen" und die ganz automatisch nacheinander abgearbeitet werden?

Es könnte aber auch sein das Aufgrund des fehlenden Konzepts des serverseitigen Cursers bei MySQL es einfach (Protokolltechnisch) nicht möglich ist das mehrere Abfragen gleichzeitig auf eine Connection laufen. MyDAC hat hier (für die Emulation von serverseitigen Curser) einen Trick auf Lager das einfach 'ne weiter Connection aufgebaut wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 Uhr.
Seite 1 von 2  1 2      

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