Autor Thema: Gerufener Agent erzeugt Replikationskonflikt  (Gelesen 1726 mal)

Offline Frank_B

  • Senior Mitglied
  • ****
  • Beiträge: 275
  • Geschlecht: Männlich
Gerufener Agent erzeugt Replikationskonflikt
« am: 26.04.12 - 15:58:37 »
Hallo,

ich habe folgendes Problem:

Eine Person erhält per LotusNotes eine Email. Diese beinhaltet eine Schaltfläche.
Hinter dieser Schaltfläche starte ich mit Lotusscript in einer anderen Datenbank einen Agenten per:

        'Auszug Script hinter der Schaltfläche:
        [...]
   Set dbNew = session.GetDatabase(strServerpath,strDatabase)
   Set agent = dbNew.GetAgent("(MeinAgent)")
   If agent.Run = 0 Then
      Msgbox "Agent gelaufen..."
   Else
      Msgbox "Agent nicht gelaufen...
   End If
        [...]

Der Agent läuft auch korrekt durch und hat nur eine simple Aufgabe:

Per "Backend" Volltestsuche wird gezielt ein Dokument gesucht.
In diesem Dokument wird nur ein einziges Feld bearbeitet und per doc.save(true, true) wieder gespeichert.
 
        Set db = ss.currentdatabase
   sSearch = "FullName = """ + ss.Commonusername + """"   
   Set col = db.Search(sSearch,Nothing,0)
   Set doc = col.GetFirstDocument
   doc.Zimmer = ZimmernummerStr   
   Call doc.Save(True, True)
        Exit Sub

Das Feld ist danach auch korrekt geändert.

Leider kommt es zu einem Replikationskonflikt.
Das Dokument selbst befand sich während der Agenten-Tätigkeit nicht durch eine weitere Person in Bearbeitung.

In den Eigenschaften des Agenten ist alles auf "default" gestellt außer "Dokumenten-Ziel", das steht auf "Keins" wegen der Search.

Habt ihr einen Tipp / Trick ?
Gibts da Probleme, aus einer Email heraus in einer anderen Datenbank einen Agenten zu starten.

Danke

Gruß

Frank_B

Gruß Frank

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Gerufener Agent erzeugt Replikationskonflikt
« Antwort #1 am: 26.04.12 - 16:49:24 »
Hat der Benutzer Doppelgeklickt?
Was sagt das Feld "$UpdatedBy" und "$Revisions" im Dokument und im Replizierkonflikt?
Wenn Du beide Dokumente Feldweise vergleichst: Sind die wirklich identisch?

Macht Dein Code WIRKLICH nur das? Weil zumindest die Variable "ZimmernummerStr" ist in Deinem Code nicht belegt...
Aus wievielen Quellen wurde der Code zusammenkopiert und hast Du wirklich alles im Überblick (weil die Variablen- Namen von mindestens 3 verschiedenen Programmierern kommen -der erste verwendet die ungarische Notation (strServerPath), der zweite eine verkürzte Version davon (sSearch) und der dritte hängt den Typ hinten an die Variablennamen (ZimmernummerStr) )
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 koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Gerufener Agent erzeugt Replikationskonflikt
« Antwort #2 am: 26.04.12 - 17:58:35 »
Doppelklick tut da nix, Torsten - da ist der AgentManager davor.
Das Problem liegt zu hundert Prozent (wenn es sich nicht um vereinzelte Fälle handelt), im Code - oder in einer verteilten Umgebung, wo auch auf einem anderen Domino ein Agent rumtut, der mal so zum Spass auch alle Dokumente ändert.
Insofern wäre $UpdatedBy die allererste Adresse, um zu ermitteln, ob es sich um einen Speicher- oder einen Replizierkonflikt handelt.

Bernhard

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Gerufener Agent erzeugt Replikationskonflikt
« Antwort #3 am: 26.04.12 - 18:05:04 »
Hast recht @Bernhard...
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 Frank_B

  • Senior Mitglied
  • ****
  • Beiträge: 275
  • Geschlecht: Männlich
Re: Gerufener Agent erzeugt Replikationskonflikt
« Antwort #4 am: 27.04.12 - 14:12:06 »
Also wir haben hier eine verteilte Umgebung mit mehreren Servern die untereinander natürlich replizieren.

@Tode:
Ein Teil des Codes ist kopiert, jedoch bin ich da nicht so einheitlich mit den Variablenbezeichnungen
- sollte ich mal tun  :) und er tut nur ein einziges Feld innerhalb eines Dokuments ändern. Also ganz "simpel".
Es steckt wirklich nicht mehr drin.

"$UpdatedBy" und "$Revisions" werde ich mir nochmals mal ansehen, wenn der Replikationskonflikt wieder auftritt.
Allerdings hatte ich das gestern nochmals getestet (ohne Veränderung des Codes) und es kam seltsamerweise kein Replikationskonflikt zustande. Dummerweise hatte ich die anderen "alten" Konfliktdokumente zuvor schon gelöscht.
ZimmernummerStr ist "as String" deklariert
Danke für die Tipps.

@koehlerbv:
Danke auch für deinen Tipp... Vielleicht war zu dem Zeitpunkt wirklich ausgerechnet auch ein Agent am Werkeln.

Frank

[Nachtrag-02.05.2012]
Replizierkonflikt kam nicht mehr... Leider troubleshooting nicht möglich. Wahrscheinlich war Dokument nochmals im Bearbeiten-Modus...
« Letzte Änderung: 02.05.12 - 14:27:54 von Frank_B »
Gruß Frank

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz