Domino 9 und frühere Versionen > Entwicklung

Mehrfachen Zugriff auf Dokument verhindern

(1/3) > >>

Wiesel:
Hallo!
Ich meine es schon irgendwo gelesen zu haben, finde es aber leider nicht wieder.

Wie kann man einen mehrfachen Zugriff auf ein Dokument verhindern?

Ich habe eine Datenbank zur Termineintragung (pro Termin ein Kontrollkästchen) für eine kurzfristige Aktion in unserer Firma erstellt.
Auf die Datenbank haben ca. 800 Mitarbeiter zugriff. Es gibt insgesamt 8 Dokumente, in denen Termine festgelegt werden.
Wenn nun mehrere User gleichzeitig auf die Dokumente zugreifen, gibt es das bekannte Problem des Replizier- und Speicherungskonflikts. Und das möchte ich gerne verhindern.

Danke für Eure Tipps,
Wiesel

koehlerbv:
Uips, ich glaube, da ist das Konzept für die Applikation grundlegend verkehrt: 800 User auf 8 Dokumente loszulassen - das kann nicht gut gehen. Und (besonders unter R5) kannst Du den Zugriff auf Dokumente nicht wirksam sperren, da Du Dich in einer verteilten Umgebung bewegst.

Kannst Du genaueres zum Zweck der Applikation sagen ? Wege gibt es schon, aber dazu muss man mehr wissen ... Jegliches Locking kannst Du aber bei ernsthaftem Herangehen komplett vergessen.

Bernhard

Wiesel:
Okay, näheres zu der Datenbank:

Es gibt 8 Masken (entsprechend der 8 Dokumente), da jede Maske für einen Tag steht.
Innerhalb dieses Tages gibt es dann jeweils vier Kontrollkästchen zu einer Uhrzeit.
Somit kann sich der User einen Tag aussuchen, innerhalb des Tages eine Uhrzeit und innerhalb der Uhrzeit gibt es vier "Plätze".
Wird ein "Platz" angeklickt, wird Username und OE gespeichert und ist dann nur noch für diesen User und für ausgewählte User mit einer bestimmten Rolle sichtbar. Somit ist keine Doppelbelegung möglich.

Mehr gibt es da schon gar nicht.

Kann man den Dokumenten nicht einen Flag im Postopen mitgeben? Und wenn ein weiterer User auf das Dokument zugreift und der Flag steht auf eins, kommt er nicht in das Dokument und bekommt eine Meldung. Wird das Dokument vom ersten User wieder gespeichert und geschlossen, wird der Flag wieder zurückgesetzt und das Dokument ist wieder "frei".

So hätte ich mir das vorgestellt.

koehlerbv:
Arbeiten denn alle auf dem gleichen Server ? Gibt es keine lokalen Repliken ? Haben alle Schreibrechte auf alle Dokumente ?
Dann könnte es klappen mit dem Flagsetzen im PostOpen. Das bedeutet dann aber auch, dass schon jedes Öffnen im EditMode zu einer Sperrung des Dokuments führt. Wann willst Du das Flag dann sicher (!) wieder entfernen ?

Eine MailIn-Lösung bei Änderungen würde mir sicherer erscheinen. Es gibt weitere Möglichkeiten, aber "simpel" sind sie alle nicht.

Warum prüfst Du aber unter den genannten Voraussetzungen nicht beim Speichern eines Dokumentes, ob diese Speicherung überhaupt zulässig ist ? Dann kann das Dokument frei von jeder Sperrung sein - wenn nicht möglich, kann eben nicht mehr gespeichert werden. Jedoch setzt auch dies voraus, dass es die DB nur genau einmal und nur auf einem Server gibt.

Bernhard

Wiesel:
Die Datenbank ist nur einmal vorhanden.

Wie gehe ich denn dann so eine Prüfung der Zulässigkeit der Speicherung an?

Ansonsten hätte ich das Flag beim Speichern und Schließen des Dokumentes (über eine Schaltfläche) wieder entfernt.

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln