Lightning Server wechseln

  • Um Rückfragen vorzubeugen, bitten wir um folgende Angaben:
    * Thunderbird-Version: 38.3
    * Lightning-Version: 4.0.3.1
    * Betriebssystem + Version: Windows 7
    * Eingesetzte Antivirensoftware: ESET
    * Firewall (Betriebssystem-intern/Externe Software): ESET


    Hallo,


    Lightning liegt auf einem Linux-Server (CalDav) und kann von allen im eigenen Netz genutzt werden. Nun haben wir noch eine Außenstelle, die über einen VPN-Tunnel mit dem Server verbunden ist. Hier läuft eine Datenbank-Replikation, d.h. die Datenbanken vom Linux-Server in der Hauptstelle werden in der Außenstelle auf localhost gespiegelt und synchronisiert. Dies nutzen wir, wenn manchmal die Internetverbindung wegbricht (Probleme beim Provider uam.). Dann arbeiten wir auf der lokalen Datenbank und wenn wieder Netzverbindung besteht, wird automatisch alles miteinander synchronisiert.


    Beim Einrichten von Lightning unter dieser Konstellation stehe ich aber auf dem Schlauch. In Thunderbird kann ich kann ich für die Kalender (wir haben verschiedene für die einzelnen Mitarbeiterinnen, die Urlaube, die Feiertage und die Ferien) doch nur eine Serveradresse eingeben. Diese ist vorzugsweise der Linux-Server in der Hauptstelle. Um ohne VPN-Verbindung die lokale sabredav-Datenbank in der Außenstelle anzuzapfen müssten jetzt die Adressen aller Kalender umgeändert werden. Das kann ich meinen Damen nicht zumuten. Hat jemand von euch eine Idee, wie man das lösen könnte?


    Vielen Dank und freundliche Grüße
    Norbert

  • Hallo strzata,


    Lightning ist ein AddOn für den Thunderbird und liegt bestimmt nicht auf dem Server.
    Aber du schreibst ja, dass es sich bei dem Server um einen CalDAV-Server handelt. Damit dürfte ja alles klar sein.


    Habt ihr denn schon mal die in Lightning eingebaute Offline-Unterstützung aktiviert und getestet? Sie macht doch alles, was notwendig ist, und das völlig ohne Tricks. Sobald das Netz wieder da ist, wird alles synchronisiert.


    Ich verfahre so per LAN oder VPN mit meinen (ja, nur) 6 TB-Profilen auf 3 Rechnern und den Smartphones der Familie. Server ist radicale auf RasPi.
    Und alles ist und bleibt immer schön synchron. Es dauert immer nur ein paar Sekunden.



    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Vielen Dank!
    Finde leider nicht, wo man die Offline-Unterstützung aktiviert.
    Aber dennoch wird das wohl mein Problem nicht lösen, denke ich. Wenn wir in der Außenstelle arbeiten und die Verbindung zum Haupt-Server fehlt, muß die Mitarbeiterin die Kalendereinträge trotzdem sehen können. Das ist für ihre Arbeit dort unerlässlich. Sie sind ja in der replizierten Datenbank auf Localhost auch vorhanden. Sie müsste halt nur bei allen Kalendern die Serveradressen ändern, so dass auf die sabredav-DB auf Localhost zugegriffen wird. Oder speichert TB selbst alle Kalendereinträge intern und zeigt sie offline an? Holt er sie sich nicht immer vom Server?


    Wenn ich Deinen Beitrag nochmal genauer lese fällt mir auf: Profile
    Lässt sich TB mit einem anderen Profil starten oder kann man nach dem Starten ein Profil auswählen, so dass die anderen Servereinstellungen zum Tragen kommen?


    Gruß Norbert

  • Hallo Norbert,


    ich fürchte, eine wirkliche Lösung wird es dazu nicht geben. Soweit ich Dich verstanden habe, sollen beide Standorte im Störungsfall weiterarbeiten können. Somit kann es vorkommen, dass ein Eintrag in einem Kalender auf beiden Seiten verändert wird. Das erfordert dann einen Algorithmus für einen Merge, um nach der Störungsbehebung wieder für einen einheitlichen Stand zu sorgen.


    Über TB/Lightning wirst Du dieses Problem nicht lösen können. Große Datenbanken, wie Oracle, DB2 oder auch der MS-SQL-Server, haben Methoden für den Umgang mit Replikaten (Stichwort ROWA, Quorum). Wenn überhaupt, kann ich mir nur eine Lösung vorstellen, wenn der CalDAC-Server die Daten in einer DB speichert, die wiederum Replikation und einen Merge beherrscht.


    Gruß


    Susanne

  • Danke, dass Du mich verstanden hast.
    Die Replikation läuft perfekt seit Jahren. Das macht alles MySql selbst. Ist Master-Master und auch Master-Slave. In der Hauptstelle werden nur gerade IDs vergeben und in der Nebenstelle nur ungerade IDs. Betrifft auch nur am Rande die caldav-MySql-DB. Hauptaugenmerk liegt auf anderen hunderten Tabellen unseres Praxissystems. Es ist absolut gewährleistet, dass da nix schief läuft. Nun weiss ich eben nur nicht, wie man den Server für den Kalender ohne großen Aufwand umstellen kann.


    Schöne Grüße
    Norbert

  • Hallo Norbert,


    ich bin mir jetzt doch nicht mehr sicher, ob ich Dich richtig verstanden habe. ;-)
    Aber gelernt habe ich etwas. Ich dachte bisher, MySQL würde nur asynchrone Master-Slave-Replication unterstützen, und Oracle würde Master-Master nur in dem "großen" Produkt anbieten.
    Wenn ihr eine Master-Master-Replikation habt, die auch schreibend funktioniert, und die CalDAV-DB ebenfalls repliziert wird, dann könntet ihr doch die Kalender stets über den lokalen Master abhandeln und bräuchtet nur einen Pfad, oder nicht?


    Gruß


    Susanne

  • Hi,


    ich "muss" mich wirklich noch mal zu Wort melden.


    Vorweg:
    Ich kenne mich mit dem wunderbaren Programm "rsync" recht gut aus und der tägliche Umgang mit VPN (der "höherwertigen Art") gehörte viele Jahre lang zu meinem täglichen Geschäft auf Arbeit.


    Ich hatte über 10 Jahre lang eines meiner beiden privaten Notebooks mit auf Arbeit gehabt und auch auf meinen vielen Dienstreisen war es immer mit dabei. Das "Internet" kam (und kommt unterwegs auch heute noch) über einen mobilen WLAN-Router und in mein Heimnetz kommt man nur über mein IPsec-VPN rein. Und innerhalb meines Heimnetzes steht mein Server(chen) und dort sind u.a. auch meine Kalender gehostet (radicale-Server).


    Das heißt, alle meine Rechner greifen immer auf den gleichen Server und den gleichen Datenbestand zu. Wegen des VPN natürlich in Lightning immer mit der IP des Servers eingerichtet. Und Dank der "Offline-Unterstützung" (was ja mehr oder weniger nur ein Cache ist) hatte ich nie auch nur das kleinste Problem, wenn mal das VPN "weg war". Alle Kalender sind auch offline mit dem letzten online-Stand sofort vorhanden, und wenn das VPN steht, ist der Stand sehr schnell wieder aktuell. Anders dürfte das ja bei deiner Varainte auch nicht sein. Wenn kein VPN, dann auch kein Sync. Logisch.


    Und nur, weil das bei mir so viele Jahre so perfekt funktionierte, habe ich dich danach gefragt.



    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • So viel Anteilnahme, da schlägt das Herz gleich höher!
    Auf die Idee von Susanne und boe bin ich überhaupt noch nicht gekommen. Das ist vielleicht das einfachste. In TB auf den lokalen Server verwiesen und fertig.
    Trotzdem interessiert mich das Vorgehen von Peter sehr. TB cacht also die Kalenderdaten? Ohne Serverdatenbank? Wie richtet man das ein?

  • Wie richtet man das ein?

    Lightning richtet das automatisch ein! ...\calendar-data\cache.sqlite wird bei erstmaliger Verwendung "Offline verfügbar machen" (oder so) erstellt.

  • Will noch hinzufügen:
    Wir schreiben aus unserer Praxissoftware direkt in die CalDav-DB. Das geht viel bequemer, als im Kalender die Termine anzulegen. Und war auch nicht schwer, es in VB.Net zu programmieren. TB nutze ich quasi nur für die Darstellung. Denn um das so schön hinzubekommen, hätte ich mir den Wolf programmiert.

  • Meine Kalender liegen (im Prinzip wie bei dir) auf einem CalDAV-Server. Bei mir eben der radicale.
    Und in Lightning habe ich in den Einstellungen eines jeden Kalenders eben jene "Offline-Unterstützung" aktiviert. Die Daten werden dann lokal in einer Art dynamischen Cache gespeichert. Das war mal eine sqlite-Datenbank. Ob das heute immer noch mit sqlite gemacht wird, weiß ich allerdings nicht.


    Wenn der Standort der Rechner immer in der Außenstelle ist, ist das mit dem Verweis auf den dortigen Server natürlich die einfachste Lösung. Bei wechselndem Standort fällt das natürlich aus.



    MfG Peter

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Lightning richtet das automatisch ein! ...\calendar-data\cache.sqlite wird bei erstmaliger Verwendung "Offline verfügbar machen" (oder so) erstellt.

    Damit komme ich leider nicht zurecht. Geschieht das nur bei einer Neuinstallation? Oder kann man nachträglich dieses Feature einrichten? In der Hilfe finde ich nichts darüber oder ich habe nicht intensiv genug gesucht. Bin noch dabei ... Aber noch ne Hilfe könnte ich gut gebrauchen.

  • Hallo Norbert,


    Das ist vielleicht das einfachste. In TB auf den lokalen Server verwiesen und fertig.

    Bevor Du Dich daran machst, sie umzusetzen, prüfe sicherheitshalber nochmals

    Wenn ihr eine Master-Master-Replikation habt, ...

    Ich bin jetzt auch nicht die Datenbankexpertin. Auf die Schnelle habe ich aber keine Information dazu gefunden, dass MySQL das wirklich beherrschen würde. Replikation ja, aber nur asynchron Master-Slave. Das würde dann aber aber auch die Replikation der anderen DBs betreffen und wäre euch wahrscheinlich schon aufgefallen.


    Das lokale Caching des Lightning funktioniert bei mir wie bei Peter einwandfrei. Das ist meiner Meinung nach in Deinem Fall jedoch keine Option, weil es nur der Synchronisation zwischen einem Client und dem Server dient. In Deinem Fall geht es aber um die Synchronisation zwischen den Servern. Das solltest Du besser den Algorithmen der Replikation überlassen.
    Ehrlich gesagt weiß ich nicht einmal, wie sich Lightning verhält, wenn zwei Clients auf einem Kalender (aber immer noch auf einem Server) nach Offlinebenutzung nacheinander syncen. Ich vermute fast, dass nicht die zeitlich letzte Änderung sondern der letzte Client gewinnt. Das könnte dann voll daneben gehen.
    Jetzt lese ich gerade, dass Du mit einem eigenen Programm direkt in die DB schreibst. Das wäre für mich ein weiterer Grund, den Cache des Lightning nicht zum Schreiben zu verwenden. *


    Bliebe noch die Lösung über jeweils zwei Profile. Nun scheint es aber so zu sein, dass Lightning schon bald aus dem Profil in das Programmverzeichnis umziehen wird. Damit wäre dieser Weg dann verbaut. Die Lösung wäre also nur temporär.


    Mein Rat: Vergewissere Dich bzgl. der Replikation und nutze jeweils den lokalen Master.


    Gruß


    Susanne


    Nachtrag:


    * Die Offline-Unterstüztung scheint mir subjektiv selbst dann ein wenig wackelig zu sein, wenn zwei Clients einen Kalender auf demselben Server benutzen aber gar nicht offline waren.
    Ich habe noch keine Fehler beobachten können, aber ich erhalte hin und wieder (Falsch-)Meldung der Art "Dieser Termin wurde auf dem Server geändert - Neu laden?", wenn ich die Offline-Unterstützung für gemeinsam benutze Kalender aktiviert habe.

    Einmal editiert, zuletzt von SusiTux ()

  • Peter :
    Das ist einfach unglaublich und für mich absolut überraschend. Ich habe die Verbindung zum Server jetzt einfach mal gekappt und danach TB gestartet. Ich hatte damit gerechnet, dass jetzt (wie bei den Mails) eine Fehlermeldung kommt, dass der Server nicht erreichbar ist. Aber oh Wunder - es sind tatsächlich alle Termine im Kalender vorhanden! Super! Die Haken "Offline-Unterstützung" in den Eigenschaften der Kalender waren von Anfang an drin. Nur ausprobiert hatten wir das noch nie.


    Aber wie funktioniert das jetzt mit dem Synchronisieren? Wenn man jetzt offline einen neuen Termin anlegt, wird der automatisch auf den Server geschrieben, wenn die Verbindung wieder hergestellt ist? Oder bedarf es dazu noch eines speziellen Sync-Programms?

  • Hallo Norbert,


    Lightning erledigt das! Wahrscheinlich ist jetzt die ...\calendar-data\cache.sqlite nocht nicht im Profilordner vorhanden. Eine beliebige Kalenderdatei "Datei/Öffnen/Kalenderdatei/" Wenn eingehängt, rechte Maustaste "Eigenschaften/Offline-Unterstützung" und (zum Test) "Kalender aktualisieren" auf "manuell".


    Jetzt "Stecker ziehen" - nein - diese Datei hinterrücks umbenennen/verschieben. Das Leben geht weiter halt nur in ...\calendar-data\cache.sqlite. Für Neugierige, einen neuen Termin in diesen Kalender, Eigenschaften zeigen immer noch den Ort an und (TB schließen) im cache ist der Eintrag gelandet. Stecker wieder rein (Datei wieder umbenennen/verschieben) und aktualisieren. Mit einem Texteditor deiner Wahl anschauen.


    Viel Spaß!


    PS: Da warst Du schneller als ich mit dem Texten!

  • Probiere es doch einfach ... .


    Ich habe jedenfalls nicht einen einzigen Termin verloren, den ich (bewusst!) im Offline-Zustand eines meiner drei Rechner oder im Smartphone eingetragen habe. Beim nächsten Synchronisieren (*) waren sie immer auf den anderen Geräten eingetragen. Und immer sah ich neue Termine, die zu Hause meine Frau eingetragen hatte - und umgekehrt. (Manchmal rief sie auch an, dass ihr ein von mir gerade eingetragener Termin nicht passt => Beweis für erfolgreiches Synchronisieren ;-))


    (*) Weil am Ende meiner 5GB des öfteren noch etwas Monat übrig war, habe ich in meinen beiden Notebooks eingestellt, dass Lightning nur aller 15 Minuten synchronisiert und beim Smartphone das automatische Synchronisieren der Adressbücher und Kalender gar deaktiviert (also immer bewusst synchronisiert.)

    Thunderbird 45.8.x, Lightning 4.7.x, openSUSE Tumbleweed, 64bit
    S/MIME, denn ich will bestimmen, wer meine Mails lesen kann.
    Nebenbei: die Benutzung der (erweiterten) Suche, und von Hilfe & Lexikon ist völlig kostenlos - und keinesfalls umsonst!
    Und: Ich mag kein ToFu und kein HTML in E-Mails!

  • Susanne :
    Hab Deinen Beitrag leider eben erst zu spät bemerkt. Hab inzwischen ja Peter nochmal wegen des Schreibens gelöchert. Ich sehe jetzt schon, dass die sicherste Lösung das Einbinden der lokalen Datenbank ist. Das funktioniert ganz sicher, da wir seit Jahren die Replikation in einer riesigen MySql-Datenbank (über 100 Tabellen, über 1 Mio Datensätze) nutzen und im Hauptsitz an mehreren Plätzen und in der Außenstelle gleichzeitig arbeiten können. Es gab noch nie einen Datencrash (ich klopp mir auf den Holzkopf).

  • Man müsste eigentlich gleichzeitig zwei Verbindungen zum Forum haben und während des Schreibens beobachten, ob inzwischen neue Beiträge eingegangen sind. So kommt alles ein bisschen durcheinander. Auf alle Fälle hab ich jetzt genügend Infos und viel gelernt. Ich danke euch allen ganz herzlich!


    Viele Grüße
    Norbert

  • Hallo Norbert,


    noch ein Update ... .


    Ich habe mit einem Bekannten telefoniert, der sich mit Datenbanken besser auskennt als ich. Er bestätigt Dich darin, dass es in MySQL möglich ist, eine Master-Master-Replikation zu konfigurieren. Somit sollte das bei euch passen.


    Er bestätigt ebenfalls meinen Gedankengang, dass nach einem Ausfall der VPN-Verbindung der Merge über die Offline-Funktion des Lightning, bei euch also in der Art


    n Clients - Master/Slave -- Replikation -- Master/Slave - m Clients mit Lightning Offline-Unterstützung


    per se nicht sicher sein kann. Also, Bahn frei und viel Glück!


    Gruß


    Susanne