Autor Thema: Status abfragen  (Gelesen 1715 mal)

Offline pl001

  • Aktives Mitglied
  • ***
  • Beiträge: 170
Status abfragen
« am: 24.03.05 - 14:54:33 »
Hallo,

kann man eigentlich feststellen, ob ein Dokument gerade durch einen anderen Nutzer bearbeitet wird?

Ich würde dies gern nutzen, um die Bearbeitung durch einen weiteren Nutzer zu verhindern.

Gruß
Peter

Driri

  • Gast
Re: Status abfragen
« Antwort #1 am: 24.03.05 - 15:14:33 »
Nicht direkt. Du könntest höchstens die Bearbeitung des Dokuments protokollieren, z.B. über ein entsprechendes Zusatzdokument, daß beim Öffnen im Bearbeitenmodus erzeugt wird. Dieses wird dann z.B. beim Verlassen des Dokuments wieder gelöscht.
Dann kannst Du beim Öffnen abfragen, ob ein solches Dokument existiert, wenn ja wird es gerade bearbeitet.

Funktioniert natürlich nicht sauber in verteilten Umgebungen.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Status abfragen
« Antwort #2 am: 24.03.05 - 18:36:21 »
Eigentlich müsste es kein eigenes Dokument sein, ein Feld, dass entsprechend gesetzt wird, wenn das Dokument im Bearbeiten - Modus ist, würde es auch tun.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re: Status abfragen
« Antwort #3 am: 24.03.05 - 18:37:31 »
Theoretisch möglich über das Query/PostOpen Event - in der Praxis spätestens bei Repliken unbrauchbar. Leider.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Marinero Atlántico

  • Gast
Re: Status abfragen
« Antwort #4 am: 24.03.05 - 18:57:25 »
Ich habs schon eingesetzt. Allerdings durfte es dann wirklich nur e.i.n.e. Replik geben, wo alle Leute reinschrieben. Geht dann z.B. nicht, dass sich Notes.PowerUser mal eben eine lokale Replik ziehen, um so schneller arbeiten zu können.

Das Verhindern von gleichzeitigen Schreiboperationen auf verteilte Systeme ist ein grundsätzliches Problem, v.a. wenn sich die Systeme auf unterschiedlichen Servern befinden.

Der Mechanismus bei Notes dagegen heisst Speicher-und-Replizierkonflikt. Für alles darüber hinaus ist Notes nicht gebaut.
Speicherkonflikt: gleiche Replik, verschiedene User
Replizierkonflikt: unterschiedliche Replik, verschiedene User.

<out_of_topic>
(falls folgende das jemand diskutieren will, bitte in einem separaten Thread)
In Relationalen Datenbanken ist es möglich, die Schreibzugriffe voneinander zu isolieren.
Aber auch hier wird sich oft mit Tricks geholfen, da nämlich sonst das System einfach zu langsam wird. Risiken von gleichzeitigen Zugriffen werden auch hier teilweise bewußt in Kauf genommen (aus Performance-Gründen). Jedoch kann man das verhindern, wenn man muß und die Tricks sind auch ziemlich gut.
Die Read- und Write logs, die von der RDBMS gesetzt werden sind im Grunde sehr ähnlich, was man dafür in Notes programmieren würde (nur ist das schon bei der RDBMS dabei).
Noch einmal komplizierter wird es bei sogenannten verteilten Transaktionen wo das Schreiben in unterschiedliche Backend-Systeme synchronisiert wird (die auch noch auf unterschiedlichen Servern liegen--> wie Replizierte Notes-DB).
Der dafür benötigte Transaktionsmanager ist quasi das Kernstück eines J2EE Servers. Die Kommunikation dieses Transaktionsmanager mit den eingebundenen Backendsystemen funktioniert mit dem 2phase-commit Protokoll. Sehr, sehr komplex, wenn man wirklich drüber nachdenkt und auch nicht komplett störungsfrei. Hoffentlich zeitweilige Fehler in der Konsistenz tragen dort den schönen und vielsagenden Namen heuristic decision (haha).
Jedenfalls sind das Dinge, die auf IBM CICS beruhen und da arbeitet IBM seit den 60ern dran.     
Die Real existierenden Komplexitäten von verteilten Clustern und verteilten Caches werden durch die gleichen ursächlichen Kräfte verursacht.
</out_of_topic>
« Letzte Änderung: 24.03.05 - 19:12:12 von Marinero Atlántico »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Status abfragen
« Antwort #5 am: 25.03.05 - 01:17:01 »
Klar gesprochen: So etwas ist nur unter vollkommen Notes-untypischen Bedingungen möglich. Da Notes ein verteiltes Dokumenten-Verwaltungssystem ist, ist eine auch nur halbwegs sichere Mehrfachbearbeitungsverhinderung vollkommen unmöglich - aber durch andere Massnahmen kompensierbar.
Hierfür muss das "Prinzip Notes" verstanden und verinnerlicht werden. Was nicht ganz einfach ist, aber wirklich machbar.

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Status abfragen
« Antwort #6 am: 25.03.05 - 21:50:15 »
Nur zur Vollständigkeit:

In R6 gibt es da eine weitere Möglichkeit:
http://www.atnotes.de/index.php?topic=19892.0

Zitat
Document locking is a way to dramatically reduce replication/save conflicts, and to otherwise ensure that when one user is editing a document, no one else will try to do so. If the document is in a database replicated amongst Domino 6 servers that communicate easily with one another, then the feature works very smoothly.
« Letzte Änderung: 25.03.05 - 21:51:58 von TMC »
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz