Autor Thema: [gelöst] Frage zu Konfliktdokumenten  (Gelesen 1659 mal)

CarstenS72

  • Gast
[gelöst] Frage zu Konfliktdokumenten
« am: 12.01.07 - 13:18:21 »
Hat von Euch noch jemand einen Tip => http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=14381&forum=47

Vielen Dank!

Carsten
« Letzte Änderung: 23.01.07 - 11:41:41 von CarstenS72 »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Frage zu Konfliktdokumenten
« Antwort #1 am: 12.01.07 - 17:26:56 »
Schwierig, vor allem, wenn das parallel in zwei Foren debattiert wird.

So, wie ich es verstanden habe, willst Du Speicherkonflikte vermeiden.
Erste Frage: Kommt Document Locking für Dich nicht in Frage? Okay, das ist auch nicht ohne Risiken und Nebenwirkungen.

Zweite Frage: Replizierkonflikte würden Dich nicht stören ("gleichzeitige" Änderungen an beispielsweise lokalen Repliken)?

Wenn ein Document erst einmal ein In-Memory-Document wird, wird es eh schwierig. Da hilft eigentlich nur ein komplettes Re-Open, wenn aus dem Lesemodus in den Edit-Modus gewechselt wird.

Dritte Frage: Wie verhinderst Du denn derzeit die "einfachen" Speicherkonflikte (User A öffnet Dokument zum Editieren, ändert munter, dann klingelt das Telefon oder der Magen knurrt, und wenn er dann weiter macht, hat zwischendurch User B auch das Dokument verändert)?

Bei einer Datenbank, die auf Grund ihrer Aufgabe (sofortige Abarbeitung einer Taskliste durch Mitarbeiter etlicher Abteilungen an unterschiedlichen Standorten) geradezu nach Speicher- oder Replizierkonflikten schreit, bin ich einen ganz anderen Weg gegangen: Die DB erlaubt gar kein direktes Speichern (in solchen Fällen), sondern beim "Speichern" sendet der User seine geänderten Items an die zentrale Datenbank per eMail (vollkommen unbemerkt natürlich). Erst diese arbeitet sequentiell die Modifikationen in das zu ändernde Dokument ein - Replizierkonflikte können nicht entstehen. Dies könnte man - hier aber nicht gewünscht - noch dahingehend erweitern, dass der nun geltende Leitsatz "wer zuletzt kommt, den belohnt das Leben" aufgehoben wird und so wiederum festgestellte "Konflikte" (Item X soll "gleichzeitig" von User A und User B geändert werden) zunächst erstmal einem humanen Kreatur vorgelegt werden. Macht aber in meinem Fall keinen Sinn.

Sag' mal genaueres an.

Bernhard

CarstenS72

  • Gast
Re: Frage zu Konfliktdokumenten
« Antwort #2 am: 15.01.07 - 12:40:04 »
Hallo Bernhard,

erstmal vielen Dank für Deine umfangreiche Antwort. Ich versuch es mal ein wenig auszuführen:

Bei der Datenbank handelt es sich um eine selbstgestrickte Anwendung mit einem relativ umfangreichen Workflow. Das Problem stellt sich immer, wenn ein geöffnetes Dokument im Hintergrund verändert wurde und dann editiert wird. Es poppen zwar Fenster mit entsprechenden Informationen auf, aber jeder kennt ja seine Anwender, da werden einfach die Fenster ohne zu lesen mit OK geschlossen, hauptsache die Meldung verschwindet. Dann haben wir den Salat mit den Konfliktdokumenten und es ist sehr mühselig den korrekten Stand wiederherzustellen, besonders wenn schon weitere Workflowschritte eingeleitet wurden.

Mein Wunsch wäre daher, dass sich das Dokument im Fall eines Konfliktes selbstständig schliesst und der Anwender zu einem Re-Open gezwungen wird. Ich suche daher die passenden Befehle um eine entsprechende Abfrage basteln zu können.

Document Locking kommt mir sehr entgegen, allerdings hatte ich bei meinem ersten Testfall schon das Problem, dass die Felder nach dem Schliessen $Writers und $WritersDate nicht entfernt wurden und das Dokument gesperrt blieb.

Deine Idee mit der sequentiellen Abarbeitung ist wirklich genial, aber leider im meinem Fall in der Kürze der Zeit nicht umsetzbar. Zukünftig werde ich aber auf jeden Fall auf den Gedanken zurückkommen.

Meine grundsätzliche Frage ist, ob es überhaupt einen Weg gibt, eine Veränderung im Hintergrund festzustellen und dann das Dokument automatisch zu schliessen.

Gruss
Carsten

CarstenS72

  • Gast
Re: Frage zu Konfliktdokumenten
« Antwort #3 am: 19.01.07 - 10:11:23 »
Meine grundsätzliche Frage ist, ob es überhaupt einen Weg gibt, eine Veränderung im Hintergrund festzustellen ...

Kennt irgendjemand einen Weg? Ihr währt mir wirklich eine riiiiiiesen Hilfe.

Gruß
Carsten

CarstenS72

  • Gast
Re: Frage zu Konfliktdokumenten
« Antwort #4 am: 23.01.07 - 11:40:44 »
Habe jetzt selber eine Lösung gefunden und wollte die hiermit allen Interessierten mitteilen:

Bei jedem erfolgreichen Speichervorgang wird Datum/Uhrzeit in ein Textfeld geschrieben. Im QuerySave öffne ich zusätzlich zum UIDocument noch das Backend Document. Dann vergleiche ich das Textfeld vom UIDocument mit dem Textfeld vom Backend Document. Sind die Felder unterschiedlich, wurde das Dokument im Hintergrund verändert. Der Speichervorgang wird abgebrochen und der Benutzer erhält eine Meldung, dass er das Dokument neu öffnen soll.

Gruss
Carsten

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz