Autor Thema: Replizierkonflikte  (Gelesen 4363 mal)

Offline Haschn

  • Frischling
  • *
  • Beiträge: 23
Replizierkonflikte
« am: 28.12.06 - 10:24:25 »
Hallo zusammen,

ich habe eine Datenbank geschrieben, in der ein Dokument vom Benutzer bearbeitet werden kann, aber gleichzeitig ein Agent alle paar minuten vom Backend reinschreibt. Dann führt dies ja logischerweise ständig zu der Konfliktdokumentfrage.

Mit Konfliktbehandlung kenn ich mich nicht sehr gut aus. Ist es möglich dem Dokument bei der Speicherung zu sagen, Generiere ein Dokument aus allen Feldern des Frontends und nimm dann die im Backend geänderten Felder hinzu?

Oder wie würdet ihr damit umgehen?

Vielen Dank für die Hilfe!

Gruß Andy

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Replizierkonflikte
« Antwort #1 am: 28.12.06 - 10:37:08 »
ich würde die logik überdenken... Müssen der Benutzer und der Agent tatsächlich GLEICHZEITIG laufen ? Kannst Du nicht das Dokument, das sowieso gerade im Frontend bearbeitet wird, von Deinem Backend- Agenten ausnehmen ?

Hier krankt es nicht nicht an der Konflikt- Behandlung, sondern vielmehr am Konzept.

Möglich ist ein solches "manuelles Mischen" natürlich schon, aber der Programmieraufwand ist wesentlich höher, als wenn Du Dich einmal hinsetzt und ein sauberes Konzept aufstellst.

Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Hive

  • Senior Mitglied
  • ****
  • Beiträge: 345
  • Geschlecht: Männlich
  • Whooaaaa!!
    • g-notes.de
Re: Replizierkonflikte
« Antwort #2 am: 28.12.06 - 11:35:42 »
Warum nicht einfach das Dokument locken ??

KAI
I love deadlines, i love the whooshing sound they make when they pass by

botschi

  • Gast
Re: Replizierkonflikte
« Antwort #3 am: 02.01.07 - 11:23:16 »
Gibt es nicht einen Parameter beim Speichern? Einen "nicht speichern, wenn ein anderer User das Dok bearbeitet"? Hab meine Hilfe nicht parat, aber mir war so.

Matthias

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Replizierkonflikte
« Antwort #4 am: 02.01.07 - 12:45:54 »
Gibt es nicht einen Parameter beim Speichern? Einen "nicht speichern, wenn ein anderer User das Dok bearbeitet"? Hab meine Hilfe nicht parat, aber mir war so.

Matthias

Ja, dafür sind aber zwei Parameter zuständig.

flag = notesDocument.Save( force, createResponse [, markRead ] )

force und createResponse müssen auf false gesetzt werden.


Axel


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Replizierkonflikte
« Antwort #5 am: 02.01.07 - 12:52:16 »
An der Fraglichkeit des Konzepts ändert das aber nichts. Ausserdem wirkt das nur, wenn während der Bearbeitung des Dokuments eben dieses Dokument durch einen anderen bearbeitet und bereits wieder gespeichert wurde - ein eher unwahrscheinlicher Fall, der dazu führt, dass die manuelle Bearbeitung verworfen und mit dem Ergebnis des Agents ersetzt wird. Eher dürfte es passieren, dass der Anwender beim Speichern damit konfrontiert wird, dass das System im sagt, es läge eine weitere Modifikation vor (was er natürlich meist tapfer überliest und so einen Speicherkonflikt verursacht).

Bernhard

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Replizierkonflikte
« Antwort #6 am: 02.01.07 - 12:58:12 »
An der Fraglichkeit des Konzepts ändert das aber nichts.

Das ist wohl wahr. Aber das wurde ja weiter oben schon angemekrt und der Fragesteller hat sich bisher noch nicht dazu geäußert.


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

botschi

  • Gast
Re: Replizierkonflikte
« Antwort #7 am: 02.01.07 - 14:24:25 »
Vielleicht darf ich in diesem Zusammenhang aber nochmal eine Frage stellen  ;D ?

Bernhard, das habe ich nicht ganz verstanden:
"Ausserdem wirkt das nur, wenn während der Bearbeitung des Dokuments eben dieses Dokument durch einen anderen bearbeitet und bereits wieder gespeichert wurde"

Bedeutet das: der Agent "merkt" sich den letzten Speicherzeitpunkt des Doks und wenn während der Laufzeit des Agenten das Dokument manuell gespeichert wurde, greifen die Speicherparameter? Und das Dok wird dann nicht vom Agenten gespeichert?

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Replizierkonflikte
« Antwort #8 am: 02.01.07 - 14:41:41 »
Mit den genannten Parametern wird eben doch gespeichert - und zwar OHNE Erzeugung eines Speicherkonflikt-Dokuments. "The winner takes it all" heisst dann die Devise, und es gilt diesmal nicht "Wer zu spät kommt, den bestraft das Leben", sondern wer zuletzt speichert, ist der Sieger.

Bernhard

botschi

  • Gast
Re: Replizierkonflikte
« Antwort #9 am: 02.01.07 - 14:45:30 »
Und wenn der FORCE-Paramter 'False' ist und der User der Sieger ist, werden die Änderungen des Agenten nicht gespeichert? Und es wird auch kein Konflikt angelegt?

Sorry für meine Hartnäckigkeit...

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Replizierkonflikte
« Antwort #10 am: 02.01.07 - 14:51:15 »
Das steht doch in der DesignerHelp beschrieben: Wer als letzter speichert, überschreibt das Dokument. Es wird kein Konflikt-Dokument angelegt. Und es gilt nur für die Aktion, die NotesDocument.Save mit den Parametern verwendet - im Frontend des Clients passiert also vermutlich etwas anderes (da anders programmiert).

Bernhard

Offline smoki

  • Senior Mitglied
  • ****
  • Beiträge: 325
  • Geschlecht: Männlich
    • Smoki's Lotus Notes
Re: Replizierkonflikte
« Antwort #11 am: 08.01.07 - 19:55:23 »
Mein Vorschlag:

Im QueryOpen das Dokument in einen Folder legen.
Der Backend-Agent verarbeitet alle Dokumente nicht, die sich in dem Folder befinden.
Im QueryClose das Dokument aus dem Folder nehmen.

Nachts den Folder leeren, falls mal ein Client abstürzen sollte  ::)

Gruss
Chris

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Replizierkonflikte
« Antwort #12 am: 08.01.07 - 23:27:08 »
Chris, ich schwimme hier zu hundert Prozent auf Torstens (Tode's) Welle. Das Konzept ist mehr als strittig, und Dein Vorschlag für einen Workaround macht das Konzept nicht unbedingt besser. Dokumente zu ermitteln, die in einem bestimmten Folder liegen und diese Collection dann aus einer vermutlich viel grösseren auszuschliessen, ist ja auch nicht gerade das Gelbe vom Ei.

Abgesehen davon: Der Fragesteller hat sich seit Fragestellung um diesen Thread bislang überhaupt nicht gekümmert. Trotzdem gut, das wir darüber gesprochen haben  ;) Dümmer geworden sind wir dabei nicht.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz