Reconnect zu einer remote MySQL DB
Moderator: Moderatoren
-
- Beiträge: 4
- Registriert: Di, 29.03.2011 13:51
Reconnect zu einer remote MySQL DB
Hallo liebe Netzgemeinde,
ich greife mit Base auf eine MySQL-DB zu, die auf einem Server (also nicht lokal hier bei mir auf dem Rechner) liegt.
Die Verbindung herzustellen ist gar kein Problem, ich habe JDBC und auch den Direkt-Connector zu einer MySQL-DB ausprobiert.
Folgendes Problem hat sich aber gezeigt:
bei Inaktivität (vielleicht so 30 Sekunden oder 60 Sekunden) meldet der JDBC Connection closed bei Driver und der native MySQL-Connector meldet MySQL Server gone away.
Das wäre ja gar nicht so schlimm, gäbe es irgendwo einen Reconnect - Button, mit dem man die Verbindung zum DB-Server wieder herstellen könnte, aber ich habe so etwas noch nicht gefunden.
Vielleicht gibt es auch ein Macro, das man einfach ausführen lassen kann und welches dann die Verbindung erneuert.
Da muß es doch eine bessere Lösung geben, als immer wieder Base zu schließen und ganz neu wieder zu öffnen....
lieben Gruß
Gabi
ich greife mit Base auf eine MySQL-DB zu, die auf einem Server (also nicht lokal hier bei mir auf dem Rechner) liegt.
Die Verbindung herzustellen ist gar kein Problem, ich habe JDBC und auch den Direkt-Connector zu einer MySQL-DB ausprobiert.
Folgendes Problem hat sich aber gezeigt:
bei Inaktivität (vielleicht so 30 Sekunden oder 60 Sekunden) meldet der JDBC Connection closed bei Driver und der native MySQL-Connector meldet MySQL Server gone away.
Das wäre ja gar nicht so schlimm, gäbe es irgendwo einen Reconnect - Button, mit dem man die Verbindung zum DB-Server wieder herstellen könnte, aber ich habe so etwas noch nicht gefunden.
Vielleicht gibt es auch ein Macro, das man einfach ausführen lassen kann und welches dann die Verbindung erneuert.
Da muß es doch eine bessere Lösung geben, als immer wieder Base zu schließen und ganz neu wieder zu öffnen....
lieben Gruß
Gabi
Re: Reconnect zu einer remote MySQL DB
Die DB-Verbindung die beim ersten Zugriff auf Tabellen hergestellt wird ist - wenn sie vom Server her unterbrochen wird - so weit ich weiss nicht wiederherstellbar. Das Einzige das Dir da weiterhelfen kann ist, dass Du die Verbindung definiert öffnest und bei Makroende wieder schliesst. Das Ganze eignet sich dann aber leider nicht zum stundenlangen Durchblättern einer Tabelle.Da muß es doch eine bessere Lösung geben, als immer wieder Base zu schließen und ganz neu wieder zu öffnen....
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
-
- Beiträge: 4
- Registriert: Di, 29.03.2011 13:51
Re: Reconnect zu einer remote MySQL DB
Danke für deine schnelle Antwort.
Leider disqualifiziert das Base die Verwendung von externen Datenbanken.
Schade eigentlich.
Naja, dann werde ich mich mal weiter nach anderen Alternativen umsehen müssen.
Leider disqualifiziert das Base die Verwendung von externen Datenbanken.
Schade eigentlich.
Naja, dann werde ich mich mal weiter nach anderen Alternativen umsehen müssen.
Re: Reconnect zu einer remote MySQL DB
Da liegst Du mE nicht ganz richtig - ich persönlich würde einer Datenbank mistrauen die während der Arbeit beendete Verbindungen einfach so wiederherstellt. Das "Problem" liegt ja nicht bei Base, sondern bei Deinem MySQL-Anbieter. Ausserdem ist es ja (sehr einfach) möglich die Verbindung neu aufzubauen, was z.B. in Access bei gekappten ODBC-Verbindungen ohne Neustart nicht möglich ist.Leider disqualifiziert das Base die Verwendung von externen Datenbanken.
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
-
- Beiträge: 4
- Registriert: Di, 29.03.2011 13:51
Re: Reconnect zu einer remote MySQL DB
Die MySQL-DB ist vollkommen in Ordnung, so wie sie angeboten wird.
Ich benutze unter anderem die MySQL Workbench und wenn dort die Verbindung nicht mehr besteht, weil vom Server beendet, was ja OK ist - und das kommt auch häufiger vor, dann gibt es da eben einen Refresh-Button und schon ist wieder alles in Ordnung.
@Ausserdem ist es ja (sehr einfach) möglich die Verbindung neu aufzubauen.
Wie ist das denn möglich, ohne Base zu beenden und neu zu starten, genau nach so einer Lösung suche ich ja? Habe ich da was übersehen?
du schriebst doch
Die DB-Verbindung die beim ersten Zugriff auf Tabellen hergestellt wird ist - wenn sie vom Server her unterbrochen wird - so weit ich weiss nicht wiederherstellbar.
Habe ich da etwas falsch verstanden oder habe ich mein Problemchen mit Base gar nicht richtig beschrieben ?
lieben Gruß
Gabi
Ich benutze unter anderem die MySQL Workbench und wenn dort die Verbindung nicht mehr besteht, weil vom Server beendet, was ja OK ist - und das kommt auch häufiger vor, dann gibt es da eben einen Refresh-Button und schon ist wieder alles in Ordnung.
@Ausserdem ist es ja (sehr einfach) möglich die Verbindung neu aufzubauen.
Wie ist das denn möglich, ohne Base zu beenden und neu zu starten, genau nach so einer Lösung suche ich ja? Habe ich da was übersehen?
du schriebst doch
Die DB-Verbindung die beim ersten Zugriff auf Tabellen hergestellt wird ist - wenn sie vom Server her unterbrochen wird - so weit ich weiss nicht wiederherstellbar.
Habe ich da etwas falsch verstanden oder habe ich mein Problemchen mit Base gar nicht richtig beschrieben ?
lieben Gruß
Gabi
Re: Reconnect zu einer remote MySQL DB
http://www.starbasicfaq.de/Wiekannmanau ... ifen..htmlweiss_gabi5 hat geschrieben: @Ausserdem ist es ja (sehr einfach) möglich die Verbindung neu aufzubauen.
Wie ist das denn möglich, ohne Base zu beenden und neu zu starten, genau nach so einer Lösung suche ich ja? Habe ich da was übersehen?
Code: Alles auswählen
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
Connection = DatabaseContext.getByName("myDatenbank").GetConnection("","")
Die DB-Verbindung die beim ersten Zugriff auf Tabellen hergestellt wird "gehört" der IDE - alle Objekte die aus der IDE heraus geöffnet werden nutzen automatisch diese Erst-Verbindung. Bis jetzt ist mir kein Weg bekannt wie man diese Erst-Verbindung (für die IDE) wiederherstellen kann (ausser die *.odb wird neu geöffnet). Mit der Methode .GetConnection kannst Du aber weiterhin auf die Datenbank (erneut) zugreifen, es wird eben eine neue Verbindung erstellt, die Du solange die Variable in der Deine Connection verpackt ist gültig ist (also in der Regel so lange das Makro läuft) "weitervererben" kannst. Ein in diesem Makro geöffnetes Formular (http://www.starbasicfaq.de/Formularopen.html) kann mithilfe der definierten Datenquelle auf die Datenbank erneut zugreifen. Diese Methode kannst Du z.B. auch dazu verwenden um in einem Formular in verschiedenen Subformularen auf unterschiedliche Datenbanken zuzugreifen.weiss_gabi5 hat geschrieben: du schriebst doch
Die DB-Verbindung die beim ersten Zugriff auf Tabellen hergestellt wird ist - wenn sie vom Server her unterbrochen wird - so weit ich weiss nicht wiederherstellbar.
Die Connection in einer Globalen Variable zu verpacken ist ein Weg sie etwas länger am Leben zu halten, aber wesentlich mehr als die 30 Sekunden wird's auch nicht bringen.
"MySQL Server gone away" ist Dein Problem oder?weiss_gabi5 hat geschrieben: Habe ich da etwas falsch verstanden oder habe ich mein Problemchen mit Base gar nicht richtig beschrieben ?
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
-
- Beiträge: 4
- Registriert: Di, 29.03.2011 13:51
Re: Reconnect zu einer remote MySQL DB
@"MySQL Server gone away" ist Dein Problem oder?
genau, wie ich schon in meinem ersten Beitrag geschrieben haben....
_____
bei Inaktivität (vielleicht so 30 Sekunden oder 60 Sekunden) meldet der JDBC Connection closed bei Driver und der native MySQL-Connector meldet MySQL Server gone away.
_____
Tja, dann muß ich leider bei meiner Ansicht bleiben, dass Base für eine Remote MySQL DB überhaupt nicht geeignet ist, was mir im übrigen überhaupt nicht gefallen will, denn die Berichte und Formulare, die man erstellen kann, sind gar nicht so übel und ich habe auch noch keinen besseren kostenlosen visuellen SQL-Komposer gefunden als den bei Base (respektive Access).
Wenn man z.B. ein längeres Formular ausfüllt und zwischendurch nur mal das Telefon klingelt, dann ist man ganz schnell bei 30 oder 60 Sekunden Inaktivität.
Wenn man dann die DB-Verbindung nicht "wiederbeleben" kann, kann ich nicht erkennen, wie man an der Stelle weiterverfahren könnte.
Wirklich schade
genau, wie ich schon in meinem ersten Beitrag geschrieben haben....
_____
bei Inaktivität (vielleicht so 30 Sekunden oder 60 Sekunden) meldet der JDBC Connection closed bei Driver und der native MySQL-Connector meldet MySQL Server gone away.
_____
Tja, dann muß ich leider bei meiner Ansicht bleiben, dass Base für eine Remote MySQL DB überhaupt nicht geeignet ist, was mir im übrigen überhaupt nicht gefallen will, denn die Berichte und Formulare, die man erstellen kann, sind gar nicht so übel und ich habe auch noch keinen besseren kostenlosen visuellen SQL-Komposer gefunden als den bei Base (respektive Access).
Wenn man z.B. ein längeres Formular ausfüllt und zwischendurch nur mal das Telefon klingelt, dann ist man ganz schnell bei 30 oder 60 Sekunden Inaktivität.
Wenn man dann die DB-Verbindung nicht "wiederbeleben" kann, kann ich nicht erkennen, wie man an der Stelle weiterverfahren könnte.
Wirklich schade
Re: Reconnect zu einer remote MySQL DB
Backend-Datenbanken die die Verbindungen automatisch kappen wollen nicht, dass Du permanent verbunden bist ...
Also musst Du Dich für das Update/Insert... frisch verbinden. Du kannst dann also Deinen Datensatz in Ruhe tippen, und telefonieren und und und ... und dann wenn Du fertig bist löst Du ein Makro aus, das folgendes macht: 1. Verbindung herstellen, 2. SQL-Update-(oder Insert)-Statement ausführen, 3. Rückgabe-Ergebnis auswerten.
g
Also musst Du Dich für das Update/Insert... frisch verbinden. Du kannst dann also Deinen Datensatz in Ruhe tippen, und telefonieren und und und ... und dann wenn Du fertig bist löst Du ein Makro aus, das folgendes macht: 1. Verbindung herstellen, 2. SQL-Update-(oder Insert)-Statement ausführen, 3. Rückgabe-Ergebnis auswerten.
g
g
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5
LucidLynx/WinXP LibreOffice v3.3.2 ab 03/12 v3.3.2 & v3.4.5