Gesperrte Datensätze
Datensatzsperren werden im Rahmen der Verarbeitung von Daten in Syncler erzeugt.
Sie dienen in erster Linie der Konfliktbehandlung und stellen zusätzlich die Aktualität von Daten sicher.
Funktionsweise der Sperren
Sobald ein Datensatz verarbeitet wird, tritt folgender Mechanismus in Kraft:
Sperren des Quelldatensatzes
- Beim Start der Verarbeitung wird der Quelldatensatz gesperrt.
- Existiert bereits eine Sperre ohne neue Änderungsinformationen, wird die Verarbeitung zurückgestellt, um Konflikte zu vermeiden.
Sperren des Zieldatensatzes bei Aktualisierungen
- Wenn es sich um eine Aktualisierung handelt, wird zusätzlich der Zieldatensatz gesperrt.
- Auch hier gilt: Sollte eine Sperre vorhanden sein und keine neueren Änderungen enthalten, wird die Verarbeitung verschoben.
Aktualisierung nach Abschluss
- Nach erfolgreicher Verarbeitung wird die Sperre mit den aktuellen Änderungsinformationen überschrieben.
- Dadurch können andere Syncs prüfen, ob ihre zuvor gelesenen Daten noch gültig sind.
Hinweis: Je nach Konstellation und Dauer von Sperren kann die erneute Verarbeitung erst mit einer erneuten Ausführung stattfinden. Dies ist bei manuellen Ausführungen nicht möglich. Sperren lösen Meldungen aus und können in der Warteschlange eingesehen werden, um z.B. eine Adhoc-Ausführung durchzuführen.
Lebensdauer der Sperren
- Datensatzsperren bleiben über die Laufzeit des Syncs hinaus für 60 Minuten bestehen.
- Hintergrund: So können auch parallel laufende oder zeitlich versetzte Syncs auf diese Informationen zugreifen und Konflikte zuverlässig erkennen.
- Nach Ablauf der Zeit werden Sperren automatisch entfernt, sofern keine weiteren Verarbeitungen stattfinden.
Zweck der Sperren
Die Sperrlogik erfüllt mehrere zentrale Aufgaben:
Vermeidung von Parallelkonflikten
verhindert, dass zwei Syncs denselben Datensatz gleichzeitig verändern.Sicherstellung der Datenaktualität
ermöglicht eine Prüfung, ob Daten seit der letzten Verarbeitung verändert wurden und neu eingelesen werden müssen.Koordination mehrerer Syncs
sorgt dafür, dass auch überkreuz ausgeführte Syncs nicht in Konflikt geraten.
Beispielablauf
- Sync A beginnt die Verarbeitung und sperrt Datensatz X.
- Sync B versucht parallel, denselben Datensatz X zu verarbeiten.
- Da bereits eine Sperre existiert, wird die Verarbeitung von Sync B zurückgestellt.
- Sync A schließt ab und aktualisiert die Sperre mit den neuesten Änderungsinformationen.
- Sync B startet erneut, prüft die Änderungen und verarbeitet den Datensatz nur, wenn er noch relevant ist.
Die Seite im Bereich "Systeme" zeigt die vorhandenen Sperren an. Aktive Sperren haben keinen Änderungswert. Mit Änderungswert ist die Sperre gelöst, wird aber nicht sofort gelöscht, damit andere Syncs den Änderungswert mit ihrem gelesenen Wert vergleichen können.
