Container-Locking
Container-Locking ist ein in easyLogic 3.6 eingeführter Mechanismus für exklusiven Schreibzugriff.
Wird beispielsweise ein Kontakt von Person A geöffnet, und daraufhin von Person B (während A diesen noch nicht geschlossen hat), so kann Person B diesen Kontakt nicht bearbeiten, und erhält stattdessen einen Hinweis. Dieser Schutz findet ebenfalls statt, falls Person A den Datensatz an mehreren Stellen (z.B. sowohl vom Bürorechner als auch vom Laptop unterwegs aus); auch hier greift zunächst die "älteste" noch aktive Sperre. In letzterem Fall hat A die Möglichkeit, diese Sperre zu überschreiben. In ersterem müsste B das entsprechende Recht OverrideContainerLock haben, A um das Schließen bitten, oder jemanden mit dem Recht beauftragen.
Locking dient dazu, Änderungen anderer nicht zu erkennen und unbewusst zu überschreiben. Ohne Locking hätte Person B jegliche Änderungen von Person A überschrieben.
Für Locking muss grundsätzlich die Stammdatenkonstante UseContainerLocking aktiv sein. Es greift dann in folgenden Fällen:
- wenn ein Container-Typ mindestens ein Feld hat, oder
- wenn im Container-Typ die Eigenschaft UseLocking (4) gesetzt ist; siehe Bitfeld-Spalte CTypEigenschaften in der Tabelle container_typ.
Locking wird wie folgt wieder inaktiv:
- Wenn alle, die den Container vorher offen hatten, diesen wieder geschlossen haben, und der neuste diesen erneut öffnet, erhält dieser daraufhin exklusiven Zugriff.
- Wenn derselbe Benutzer den Container mehrfach offen hat, so kann er die Sperre entfernen.
- Wenn ein Benutzer das Recht OverrideContainerLock hat, so kann er die Sperre ebenfalls entfernen.
- Antwortet ein Client seit 90 Sekunden (drei Pings) nicht mehr, so entfällt dessen Sperre.