@Bernhard
Ich habe den Thread hier eher nicht unter dem Hauptaspekt "Locking" betrachtet, wie er
in einer vernünftigen Datenbank gemacht wird, sondern eher unter dem Gesichtspunkt,
ob ein Anwender überhaupt editieren darf oder nicht.
ND6-Locking verwende ich nicht, meine Standardroutinen bilden das ab R5 nach.
Da die Offline-Thematik vernünftiges Locking sowieso nicht zulässt, habe ich das Ganze
mit einem Merging von Replikationskonflikten gelöst.
Will heissen.
Falls direkt connected an Server -> Lock wird verwendet -> Message an 2.ten User, der ein
Dokument in Bearbeitung nehmen will und Sperre. Wenn der 1.Anwender fertig ist, wird
automatisch ein Mail an den anderen gesendet ("Bin fertig").
Falls nicht connected -> 2 User machen Änderungen am selben Dokument -> Mischen
funkt nicht -> Repl.Konflikt -> Taucht in Adminansicht auf -> Manueller Mischvorgang
möglich mit Benachrichtigung aller Beteiligten. Oder Admin kann Rule (nicht Notes Rule)
definieren, wie solche Repl. Konflikte in Zukunft automatisch behandelt werden sollen
(Zugegebenerweise keine hohe Trefferquote, aber ein Ansatz)
Klingt auf ersten Blick etwas aufwändig und ist es auch (was die Rules anbelangt).
Hatte aber sehr viele Probleme nicht etwa mit unterschiedlichen Usern, aber im
Zusammenspiel mit vielen Agenten, die hier parallel z.B. Statistikfelder füllen.
Die Wahrscheinlichkeit, dass 2 User dasselbe Dokumente gleichzeitig bearbeiten möchten,
ist sehr viel geringer als die Wahrscheinlichkeit, dass periodische Agenten, die tagsüber
laufen, in Kollision mit einem Anwender kommen.
Leserfelder scanne ich generell nicht, warum auch. Wenn ein Leserfeld drinnen steht, dass
mich ausschliesst, komme ich doch gar nicht an das Dokument ran oder sehe ich das falsch ?
Und warum reichen die Autorenfelder nicht aus für den Schreibzugriff ? Gut, die Prüfung,
ob ich das Dokument selbst erstellt habe ($UpdatedBy) und danach niemand anders
verändert, hab ich hier vergessen.
Bin immer interessiert an etwas, wo ein Fehler in meinen Routinen aufgedeckt werden kann.
bye
Christian