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.
Serverseitiger Cache-Reset
ber die DataSourceAdminApp (Dashboard) kann ein ClientCacheResetMarker
gesetzt werden. Wird dies gesetzt, werden die Desktop-Client bei der nächsten Synchronisierung ihren bisherigen Cache verwerfen. Diese Option sollte allerdings nur im Notfall genutzt werden, falls die reguläre Synchronisierung fehl schlägt.
PrimeSoft AG, Bahnhofstrasse 4, 8360 Eschlikon, Switzerland