Was kann ich tun, wenn das MySQL Modul Zeitzonen-Fehler in der Logdatei jam-0.log protokolliert?

Mit dem Update des Moduls Adressbuch und Journal für MySQL-Datenbanken auf Version 2.0.14 wurde der neue MySQL JDBC Treiber in Version 8 eingebunden. Dies hat zur Folge, dass dieser Treiber eine Zeitzonen-Information auf dem MySQL Server in einem bestimmten Format erwartet. Bei älteren MySQL Server Instanzen bzw. auch bei migrierten Servern ist es oft der Fall, dass diese Zeitzonen nicht oder auf einen ungültigen Wert gesetzt sind. Dies war mit älteren JDBC-Treibern kein Problem, scheint aber mit Version 8 des Treibers nun aufzutreten. Ist dieses Problem vorhanden, werden im Journal und Adressbuch vorübergehend keine Einträge angezeigt und in der Logdatei jam-0.log im jAnrufmonitor /logs Verzeichnis folgende Logeinträge protokolliert:

[ SEVERE – 02/Mär/2019:15:53:40 +0100 – JAM-MySqlAddressbook-Observer-Thread (deamon) – de.janrufmonitor.repository.AbstractDatabaseCallerManager$1.run() – The server time zone value ‚Mitteleuropäische Zeit‘ is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support. ]

Die Lösung dieses Problems ist jedoch einfach zu finden. Man muss auf dem genutzten MySQL Server eine Standard- bzw. globale Zeitzone einrichten. Eine gute Hilfestellung bietet hierzu folgende, in Stackoverflow dargestellte Vorgehensweise: https://stackoverflow.com/questions/930900/how-do-i-set-the-time-zone-of-mysql

Anschließend wird der Zugriff auf das MySQL Adressbuch bzw. Journal wieder ermöglicht.

Dieser Beitrag hat 7 Kommentare

  1. sonyandi@web.de

    Hallo Thilo,

    ich habe das Probem seit 2.4.20. Auf einmal wird mir im Journal keine Einträge gezeigt sondern eine -1.
    Daraufhin habe ich wie von Dir vorgeschlagen die Zeile geändert:

    repository.MySqlJournal\:dbdb\:value=DBNAME?useLegacyDatetimeCode\=false&serverTimezone\=UTC

    Jetzt werden mir zwar die Anrufe im Journal wieder angezeigt allerdings nur bis zum 2.4., mir fehlen also die Anrufe vom 2.4. bis heute.
    In der FB sind die Daten noch vorhanden, wie kann ich die Anrufe vom 3.4. -7.4. syncronisieren?

    Neue Anrufe werden nach der Anpassung wieder ordnungsgemäß geloggt.

    Danke für Deine Hilfe

    1. Hallo sonyandi,

      du kannst die Anrufliste deiner FRITZ!Box exportieren und im jAnrufmonitor Journal wieder importieren, dann werden die fehlende Einträge ergänzt.

      Viele Grüße
      Thilo

  2. huhie

    Moin,
    bei mir existiert der Fehler genau seit dem 29.03. und der Umstellung auf Sommerzeit.

    Ich nutze eine Syno DS916+ mit MariaDB10. Und leider funktioniert bei mir der Import
    bzw. das Füllen der time_zone innerhalb der mysql Datenbank schon nicht.

    Ich bin kein MySql Profi und bräuchte daher Hilfe. Hat einer die Möglichkeit mir
    zu helfen, damit ich wieder an meine JAM Journale und Kontakte komme… 🙁

    Aktuell steht da -1 Anrufe…

    Ich würde mich sehr freuen.

    Huhie

    1. Hallo Huhie,

      du kannst mal noch eine Sache testen. Öffnen die janrufmonitor.properties Datei in einem Texteditor

      Suche de Zeile

      repository.MySqlJournal\:dbdb\:value=journal

      und änder die in folgende ab:

      repository.MySqlJournal\:dbdb\:value=journal?useLegacyDatetimeCode\=false&serverTimezone\=UTC

      Speichere und starte jAnrufmonitor neu.

      Gib Bescheid, ob das geklappt hat.

      Thilo

  3. Noch zwei Sachen, über die ich beim Nachziehen meines MySQL-Servers gestolpert bin, die vielleicht als Hinweis in der FAQ dem Einen oder Anderen weitere Sucherei ersparen:

    1) Unter Windows muss man bei MySQL / MariaDB zunächst einmal die time_zone Tabelle(n) füllen, s. hier

    https://dev.mysql.com/downloads/timezones.html

    (Ohne das bekommt man nur den Hinweis, „Europe/Berlin“ sei kein gültiger Eintrag, obwohl das natürlich im Windows als Systemeinstellung so hinterlegt ist.)

    2) Und um das zu bewerkstelligen muss man in der MySQL Workbench unter Edit | Preferences das Häkchen setzen bei „Show Metadata and Internal Schemas“, sonst bekommt man das mysql-Schema nicht zu Gesicht.

    1. cube4you

      Hallo Thilo!

      Ich bin komischerweise erst gestern über das Problem mit der fehlenden TimeZone gestolpert, das Journal hatte seit dem Update des MySQL-Moduls noch bis letzten Freitag ordentlich mitgeschrieben.

      Ich verwende eine Synology Diskstation mit MariaDB5 als Datenbank. Für mich war der Weg dann wie folgt: per phpMyAdmin der MySQL Datenbank die entsprechenden Tabellen durch import der unter https://downloads.mysql.com/general/timezone_2019a_posix_sql.zip zu findenden Daten auffüllen und dann die nachfolgenden SQL-Befehle abarbeiten:

      SELECT @@global.time_zone;
      SET GLOBAL time_zone = ‚Europe/Berlin‘;

      Nach Neustart des jAnrufmonitors konnte ich alles wie gehabt weiterverwenden.

Schreibe einen Kommentar