DBLog: nur eine Instanz möglich

Begonnen von CQuadrat, 27 August 2015, 12:09:19

Vorheriges Thema - Nächstes Thema

marvin78

Ok @CQuadrat. Ich sehe, du kannst deinen eigenen und meinen Text nicht lesen. Mir geht es nur um die Feststellung, dass 2 und mehr Instanzen sehr wohl funktionieren. In meinem Zitat von dir steht nämlich nichts von remote und im Titel dieses Threads auch nicht. Wer das liest, kümmert sich nicht darum, ob du Probleme mit einer lokalen und einer remote-Verbindung hast. Der sieht nur "2 Instanzen gehen nicht". Und das ist falsch. Nur darum geht es mir.

Ich will das hier aber auch nicht weiter in die Länge ziehen. Das macht keinen Sinn. Ich würde an deiner Stelle lieber die Energie darauf verwenden, meinen Vorschlag mit den Ports zu probieren. Ich sehe das hier noch nicht wirklich als Bug. Das könnte ein sehr "normales" Problem mit MySQL sein.

CQuadrat

Zitat von: marvin78 am 28 August 2015, 08:48:11
(...) Ich würde an deiner Stelle lieber die Energie darauf verwenden, meinen Vorschlag mit den Ports zu probieren. Ich sehe das hier noch nicht wirklich als Bug. Das könnte ein sehr "normales" Problem mit MySQL sein.

Mit verschiedenen Ports hatte ich es auch schon erfolglos probiert.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

roedert

Ein Workaround wäre auf dem FHEM-Rechner einen rinetd einzurichten, der zB Port 3307 auf Port 3306 der entfernten mysql-Db weiterleitet. Aus FHEM heraus würdest du die Remote-DB dann auch mit localhost Port 3307 ansprechen.

Der saubere Weg wäre natürlich die Ursache im DbLog zu finden und zu beheben.

marvin78

Wie schon gesagt: DBLog ist an vielen Stellen fehlerhaft. Die Frage ist, ob sich der Aufwand lohnt, das Problem zu lösen.

CQuadrat

Ich debugge das ganze gerade etwas.

DbLog steigt aus mit der Fehlermeldung:

2015.08.28 11:03:58.164 4: DbLog myDbLog_neu: Rereadcfg requested.
Can't call method "commit" on unblessed reference at ./FHEM/93_DbLog.pm line 1300.


In Zeile 1300 steht im Modul:

1298                 when ('rereadcfg') {
   1299                         Log3($name, 4, "DbLog $name: Rereadcfg requested.");
   1300                         $dbh->commit() if(! $dbh->{AutoCommit});
   1301                         $dbh->disconnect();
   1302                         $ret = _DbLog_readCfg($hash);
   1303                         return $ret if $ret;
   1304                         DbLog_Connect($hash);
   1305                         $ret = "Rereadcfg executed.";


Mit meinen beschränkten Perl-Kenntnissen interpretiere ich das so, dass eine Routine names commit() aufgerufen wird; und die scheint es nirgends zu geben  :-\
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue