Mysqlverbindung instabil

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
starkard
Beiträge: 87
Registriert: Mi 31. Okt 2007, 10:44

Mysqlverbindung instabil

Beitrag von starkard »

Hallo,

Habe beobachtet, dass sich meine Mysqlconnection nach einigen Stunden ohne Traffic einfach abmeldet. Habe die Option Keepconnection auf true gestellt (SQLdb) - ohne Wirkung.

Habe auch gelesen, dass Mysql die Verbindungen nach einem def. Timeout trennt um Ressourcen zu sparen, was ja ggf. Sinn macht. Trozdem ist erst nach Neustart des OS die Verbindung wieder hergestellt.

Da bestimmt einige von euch auch mit mysql arbeiten: Wie löst ihr das Problem wenn ihr nur alle paar std. die Verbindung beanspruchen müsst. Danke für evtl. Tips im Vorraus.

Kuster Peter
Beiträge: 205
Registriert: So 2. Dez 2007, 20:47
OS, Lazarus, FPC: Windows XP Lazarus immer neueste Version
CPU-Target: xxBit
Wohnort: Schweiz

Re: Mysqlverbindung instabil

Beitrag von Kuster Peter »

SQLDB ist leider nicht so stabil. Muss noch überarbeitet werden. Nimm Zeos.

Peter

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Mysqlverbindung instabil

Beitrag von Christian »

Das hat mit dem problem doch rein gar nichts zu tun. Ich könnt auch sagen mysql darf nicht kommerziell frei eingesetzt werden nimm firebird. Tut genausiviel zur thematik.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Re: Mysqlverbindung instabil

Beitrag von monta »

um mal beim Thema zu bleiben, wieso hältst du die Verbindung überhaupt solange offen?

Ich würde nach dem was du geschrieben hast, ja den anderen Weg gehen und die Verbindung nur aktivieren, wenn sie auch gebraucht wird. Bzw. wieso braucht es einen Neustart des Betriebssystems, das kann ja keine Lösung sein. Was passiert denn, wenn du die Verbindung neu Aufbauen willst, ohne Neustart...Fehler?
Johannes

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Mysqlverbindung instabil

Beitrag von KOBOLD Messring GmbH »

Habe bisjetzt dafür nur ZeosDB (6.6.2) eingesetzt, damit gab es nie Probleme.
Habe aber auch nie die Verbindung länger offen gehabt als nötig, d.h. ZConnection öffnen, Abfrage öffnen, Daten einlesen (in eigene Textliste, StringGrid - kein DBGrid, oder was auch immer), Abfrage schliessen, ZConnection schliessen.
Den Programmbenutzer die Daten verändern/editieren/neue-Schreiben-lassen/was-auch-immer, und wieder im Millisekunden-Bereich: Connection öffnen, INSERT/UPDATE-Statement loslassen, Connection schliessen.
Ich denke, dieses Vorgehen spart auch Resourcen auf dem MySQL-Server.

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Mysqlverbindung instabil

Beitrag von KOBOLD Messring GmbH »

Neuer Erfahrungsbericht über Lazarus SQLdb-Komponenten (kein ZEOS):
Habe drei Anwendungen so programmiert:
  • FormCreate öffnet MySQLConnection,
  • Während des Programmlaufs, auf Events von ListBox- und Button-Clicks etc.:
    SQLQuery wird nur solange auf Active gesetzt, wie zum Einlesen der Daten benötigt wird (wohl nur Millisekunden), dann wieder geschlossen.
  • FormDestroy schliesst MySQLConnection (jeweils nach Stunden, habe die Anwendung immer 8 Stunden pro Tag offen).
Mit dieser Konstellation hatte ich nie Probleme, ich glaube die Lazarus SQLdb-Komponenten sind viel besser als Ihr Ruf.

@starkard: ¿Könnte es an Deinem MySQL-Server liegen, dass dort eine Art Timeout eingestellt ist, der die Verbindung schliesst? Bin nicht soooo der MySQL-Server-Crack, habe bis jetzt immer nur "Standardinstallation" für einen MySQL-Server gemacht (von der Mandriva 2006 und 2008 DVD).

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Mysqlverbindung instabil

Beitrag von DiBo33 »

Zuständig ist die globale Variable wait_timeout von MySQL welche standardmäßig auf 8 Std. (28800 Sek.) eingestellt ist.
http://dev.mysql.com/doc/refman/5.1/en/ ... it_timeout" onclick="window.open(this.href);return false;

Auslesen kannst du den Wert mit

Code: Alles auswählen

SHOW variables LIKE 'wait_timeout'
Umstellen kannst du es mit

Code: Alles auswählen

SET wait_timeout = nnn
nur ausschalten kannst du diesen nicht

MmVisual
Beiträge: 1581
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 4 FPC 3.2.2)
CPU-Target: 32/64Bit

Re: Mysqlverbindung instabil

Beitrag von MmVisual »

Hallo, ich mache alle paar Minuten eine Query mit der Abfrage "SELECT ID FROM tabelleyyyy WHERE 0 = 1". Das bringt keinen einzigen Datensatz, hält dafür die Verbindung ewig.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten