Synchronisation



Der primedocs desktop Client ist mit dem primedocs-Service über die Service-URL verbunden. Die Service-URL kann bei der Installation angegeben oder im Installationsverzeichnis in der Datei "primedocs.exe.config" im Attribut value wie folgt konfiguriert werden:

<configuration> [...] <appSettings> [...] <add key="ServiceAddress" value="https://your-url.local/Service/primedocs.svc" /> [...] </appSettings> [...] </configuration>

Initialisierung

Beim ersten Start von primedocs desktop werden zuerst die Daten synchronisiert. Sobald diese Synchronisation abgeschlossen ist, kann primedocs verwendet werden. Bei allen folgenden Synchronisationen werden nur noch die Änderungen abgerufen.


Sync-Intervall

Konzept

Der primedocs-Client ruft zyklisch automatisch die neusten Änderungen vom Service ab. Hier ist es wichtig, dass nicht alle primedocs-Clients einer Firma gleichzeitig den Service für eine Synchronisation kontaktieren, damit keine grosse Serverlast und somit keine Ausfallrisiken entstehen.

Ein kleiner Synchronisationsintervall kann bewirken, dass (insbesondere wenn es Änderungen "abzuholen" gibt) eine hohe Serverlast entsteht. Eine hohe Serverlast könnte auch entstehen, wenn viele Geräte gleichzeitig versuchen zu synchronisieren, z. B. wenn alle Clients am Montagmorgen etwa gleichzeitig aufgestartet werden.

Um das Problem der hohen Serverlast zu umgehen, sind zwei Werte konfigurierbar:

Konfiguration

Die Client-Synchronisation kann im Dashboard unter "Settings" konfiguriert werden:

Die Werte von ClientSyncInterval und ClientSyncMaxDelayAfterStart werden bei jeder Synchronisation übertragen und vom Client lokal gespeichert.

ClientSyncInterval: Zeitabstand zwischen Synchronisationen

Das ClientSyncInterval legt fest, wieviel Zeit maximal vergeht, bis der Client erneut synchronisiert. Der Wert wird in Millisekunden angegeben. Der Standardwert ist 900'000 Millisekunden (15 Minuten).

Die tatsächliche Zeit, die zwischen den Synchronisationen vergeht, wird wie folgt berechnet: Von der im ClientSyncInterval konfigurierten Zeit werden zufällig bis zu 10% der Wartezeit abgezogen.

Beispiel: Bei einem ClientSyncInterval von 15 Minuten beträgt die tatsächliche Wartezeit bis zur nächsten Synchronisation jeweils zufällig zwischen 13.5 und 15 Minuten.

Beim Programmstart wird ausgewertet, ob seit der letzten erfolgreichen Synchronisation die Intervall-Zeit bereits vergangen ist. Ist das nicht der Fall, wird die übrigbleibende Zeit berechnet. Von dieser werden wiederum zufällig bis zu 10% der Wartezeit abgezogen.

Wenn beim Programmstart die letzte erfolgreiche Synchronisation also 42 Stunden her ist und das ClientSyncInterval 48 Stunden beträgt, dann beträgt die Zeit bis zur nächsten Synchronisation maximal sechs Stunden. Nach Abzählung von maximal 10% ergibt sich ein Wert zwischen 5.4 und 6 Stunden.

Ist seit der letzten erfolgreichen Synchronisation die Intervall-Zeit bereits vergangen, gilt der nächste Punkt "ClientSyncMaxDelayAfterStart".

ClientSyncMaxDelayAfterStart: Maximale Verzögerung nach Programmstart

Wenn ein Client startet und die letzte erfolgreiche Synchronisation länger her ist als die konfigurierte Intervall-Zeit, dann kommt der ClientSyncMaxDelayAfterStart zum Zug.

Die Synchronisation geschieht in diesem Fall nämlich nicht sofort, sondern verzögert. Grund: Wenn z. B. der ClientSyncInterval zwei Stunden beträgt und am Morgen um 8.00 Uhr viele Personen gleichzeitig primedocs starten, synchronisieren alle diese Clients in derselben Minute, was zu einer übermässig hohen Serverlast führt.

Der ClientSyncMaxDelayAfterStart legt fest, wie viel Zeit maximal vergeht, bis der Client synchronisiert, wenn er beim Programmstart aufgrund des abgelaufenen Intervalls eigentlich schon hätte synchronisieren sollen. Der Wert wird in Millisekunden angegeben. Standardwert ist 3'600'000 Millisekunden (1 Stunde). Wenn ClientSyncMaxDelayAfterStart (z. B. 1 Stunde) höher ist als das ClientSyncInterval (z. B. 15 Minuten), dann gilt für den ClientSyncMaxDelayAfterStart auch der Wert vom ClientSyncInterval (folglich im Beispiel 15 Minuten).

Die tatsächliche Verzögerung wird zufällig bestimmt. Sie beträgt zwischen 0 und der in ClientSyncMaxDelayAfterStart angegebenen Anzahl Millisekunden. Somit kann die Serverlast verteilt werden, wenn z. B. bei einem ClientSyncInterval von 1 Tag am Montagmorgen alle Clients synchronisieren müssen.


Manuelle Synchronisation

Zusätzlich gibt es die Möglichkeit, manuell eine Synchronisation auszulösen. Einerseits kann diese durch einen Klick auf "Letzte Aktualisierung" in der Statusbar im Client unten rechts und anschliessend auf "Synchronisieren" ausgelöst werden.

Andererseits kann man im Infobereich auf das primedocs-Symbol rechtsklicken und anschliessend "Synchronisieren" wählen.

 


Cache-Version

Der Client überprüft beim Start ob der Cache noch valide ist.

Beim Ändern der "Service-URL" wird der Cache immer zurückgesetzt.

Führt man nun ein Update des Windows-Clients aus, wird geprüft ob die Struktur des Cache noch mit der neuen Version übereinstimmt.

Ist der Cache valide, wird kein neuer Cache aufgebaut.

ACHTUNG
Bei der Deinstallation wird der Cache gelöscht. D. h., primedocs.exe /clean wird immer noch aufgerufen. Wird das Update als Deinstallation und Installation ausgeführt, muss vom Cache vorher über einen anderen Weg ein Backup erstellt werden und vor dem ersten primedocs-Start wieder eingespielt werden. Das kann z. B. ein einfaches Umbenennen des Cache-Ordners sein – primedocs benötigt beim /clean-Befehl keinen verfügbaren Cache.


Lazy Loading

Über die Installationsoption UseLazyLoadingCache und dem Wert true kann der Client in einen alternativen Modus versetzt werden, sodass initial binäre Daten von Vorlagen- und Textbausteinen nicht sychronisiert werden. Erst bei Verwendung einer Vorlage oder eines Textbausteines werden die Daten im Hintergrund geladen.

Vorteile

  • Die initiale Synchronisierung ist wesentlich schneller.

  • Die initiale Cache-Grösse ist stark reduziert, jedoch vergrössert dieser sich bei aktiver Verwendung.

Nachteile

  • Der Client kann nicht mehr in den Offline-Modus geschalten werden.

  • Ist der Server bei der Dokumentgenerierung nicht erreichbar, wird ein Fehler angezeigt.

  • Beim ersten Verwenden einer Vorlage oder eines Textbausteines können erhöhte Ladezeiten entstehen.

Empfehlung

  • Diese Variante eignet sich für Clients, welche immer eine aktive Verbindung zum Server haben, wie z.B. Terminal Server Umgebungen o.Ä. und bei Clients, welche den Cache nicht dauerhaft speichern können.

PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland