DbLog schreibt nach ein paar Minuten nicht mehr in die externe DB

Begonnen von photon2000, 20 Juni 2015, 15:54:00

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Das Event
Zitat<TIMESTAMP>     myDbLog     DBLOG    connected    state    connected
gab es auch vorher, nur wurde es durch den Fehler im Code nicht in der Datenbank gespeichert.

Ich habe noch einige Tests gemacht und eventuell eine weitere Möglichkeit gefunden das Problem zu beheben. Kannst du versuchen in der Funktion DbLog_Connect die Zeile
my $dbh = DBI->connect_cached("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0 });
durch
my $dbh = DBI->connect_cached("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, AutoInactiveDestroy => 1 });und die Zeile
  my $dbhf = DBI->connect_cached("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0 });
durch
  my $dbhf = DBI->connect_cached("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, AutoInactiveDestroy => 1 });
zu ersetzen und FHEM anschließend neu zu starten.

Wenn danach die Meldungen nicht mehr auftreten wurden die Verbindungsabbrüche durch fork hervorgerufen, wenn sie weiterhin auftreten hast du eventuell ein Netzwerkproblem.

Grüße,

ChrisD

Jorge3711

Zitat von: photon2000 am 26 Juni 2015, 10:47:09

ein Fehler geworfen wird (relativ häufig):
"2015.06.26 09:39:16 3: Connection to db mysql:database=d01e89cb;host=123456.kasserver.com;port=3306 established"
"2015.06.26 09:39:16 0: DbLog: Error: DBD::mysql::db begin_work failed: Turning off AutoCommit failed at ./FHEM/93_DbLog.pm line 460."

Nur aus Interesse: Steht Dein DB-Server im Internet? Vielleicht ist das ja der Grund für die instabile Verbindung zu Deiner DB?

tobox

[EDIT]: Hat sich erledigt. Das Problem war nur auf einer FHEM-Installation, die schon lange kein Update mehr gemacht hatte. Das Prolem scheint im aktuellen Code sauber gepatched zu sein.

Ich habe gerade mehrere FHEMs auf DbLog umgestellt, und hatte auch das Problem der abreißenden Logs wenn mal kurz der Server weg war.

Gibt es einen Grund, warum der Workaround aus diesem Thread nicht in den offiziellen Code übernommen wurde?

Musste erstmal suchen, an welcher Stelle der Workaround im aktuellen Code eingepflegt werden muss (da andere Zeilennummern), und habe jetzt Angst dass mir das nächste Update die DbLog wieder überschreibt.