Document multi-client sync lock in README
Beschreibt Lock-Datei starface-sync.lock: atomares Anlegen (CreateNew), nur waehrend des Syncs vorhanden, Inhalt (Host/User/Zeit/PID), Warte- und Absturz-Verhalten, sowie den Hinweis auf bidirektionalen Modus im Mehrplatz. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -265,6 +265,43 @@ Alle Daten werden lokal pro Benutzer gespeichert:
|
|||||||
|
|
||||||
Self-signed Zertifikate der Starface werden automatisch akzeptiert. Es ist kein manueller Zertifikat-Import erforderlich.
|
Self-signed Zertifikate der Starface werden automatisch akzeptiert. Es ist kein manueller Zertifikat-Import erforderlich.
|
||||||
|
|
||||||
|
### Mehrplatz-Betrieb / Sync-Sperre
|
||||||
|
|
||||||
|
Mehrere Arbeitsplaetze koennen dasselbe Starface-Adressbuch pflegen. Damit sich
|
||||||
|
gleichzeitig laufende Syncs nicht ins Gehege kommen (Dubletten, ueberschriebene
|
||||||
|
Aenderungen), gibt es zwei Schutzebenen:
|
||||||
|
|
||||||
|
**1. Lokal (immer aktiv):** Auf einem PC kann nie mehr als ein Sync gleichzeitig
|
||||||
|
laufen. Startet der Auto-Sync-Timer, waehrend ein manueller Sync laeuft (oder
|
||||||
|
umgekehrt), wird der zweite Lauf uebersprungen. Atomar per `Interlocked`.
|
||||||
|
|
||||||
|
**2. Clientuebergreifend (optional):** In den Einstellungen kann ein
|
||||||
|
**gemeinsames Verzeichnis** (Netzlaufwerk oder UNC-Pfad wie
|
||||||
|
`\\server\freigabe\sync`) hinterlegt werden. Funktionsweise:
|
||||||
|
|
||||||
|
- Beim Start eines Syncs legt der Client dort die Datei **`starface-sync.lock`**
|
||||||
|
an - **atomar** ueber `FileMode.CreateNew`: das Anlegen schlaegt fehl, wenn
|
||||||
|
die Datei bereits existiert. Damit kann immer nur ein Client gleichzeitig die
|
||||||
|
Sperre halten.
|
||||||
|
- Die Datei wird waehrend des gesamten Syncs **offen gehalten** und am Ende
|
||||||
|
wieder **geloescht**. Sie existiert also nur, solange tatsaechlich gerade
|
||||||
|
synchronisiert wird (bei kleinen Adressbuechern nur sehr kurz).
|
||||||
|
- Inhalt der Datei: `Rechnername | Benutzer | UTC-Zeitstempel | Prozess-ID` -
|
||||||
|
damit man sieht, wer gerade synct.
|
||||||
|
- Findet ein anderer Client die Sperre vor, **wartet** er (Abfrage alle 3
|
||||||
|
Sekunden, bis zu 2 Minuten) und synct erst danach. Wird die Sperre nicht frei,
|
||||||
|
wird der Lauf uebersprungen und beim naechsten Intervall erneut versucht.
|
||||||
|
- **Absturzsicher:** Stuerzt ein Client mitten im Sync ab, gibt Windows das
|
||||||
|
Datei-Handle frei. Die verwaiste Lock-Datei gilt nach 15 Minuten als veraltet
|
||||||
|
und wird vom naechsten Client uebernommen. Lebt der Halter noch, scheitert das
|
||||||
|
Loeschen am offenen Handle - die Sperre bleibt also korrekt bestehen.
|
||||||
|
- Ist **kein** Verzeichnis konfiguriert oder es ist nicht erreichbar, laeuft der
|
||||||
|
Sync ohne diese Sperre weiter (die lokale Sperre bleibt aktiv).
|
||||||
|
|
||||||
|
> Hinweis: Im Mehrplatz-Betrieb sollte die **bidirektionale** Sync-Richtung
|
||||||
|
> verwendet werden. Die Ein-Richtungs-Modi ("Ersetzen") wuerden die von anderen
|
||||||
|
> Arbeitsplaetzen gepflegten Kontakte loeschen.
|
||||||
|
|
||||||
## Lizenz
|
## Lizenz
|
||||||
|
|
||||||
Proprietaer - Alle Rechte vorbehalten.
|
Proprietaer - Alle Rechte vorbehalten.
|
||||||
|
|||||||
Reference in New Issue
Block a user