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.
|
||||
|
||||
### 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
|
||||
|
||||
Proprietaer - Alle Rechte vorbehalten.
|
||||
|
||||
Reference in New Issue
Block a user