Autor Thema: Counter Replikation  (Gelesen 1356 mal)

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Counter Replikation
« am: 21.06.06 - 11:43:38 »
Hallo,

ich möchte gerne einen Counter in eine Datenbank
einbauen der bei einer Repliaktion auf 0
gesetzt wird und bei normalen öffnen 1mal pro Tag den Counter hochzählt.

Hierzu habe ich ein Script gefunden welches auf neu oder
geänderte Dokumente reagiert.

Code
profilename := "Archive_Profile";
timestamp := @Now;
count := @GetProfileField(profilename; "Count");
@If(@IsNewDoc;
@Do(@Set("count"; 0));
count=0;
@Do(@Set("count";1); @SetProfileField(profilename; "TimeStamp"; timestamp));
@Do(@Set("timestamp";@GetProfileField(profilename; "TimeStamp")); @Set("count"; count+1)));

@SetProfileField(profilename; "Count"; count);

Ich finde nun keine Möglichkeit den Befehl @IsNewDoc zu ersetzen.
Kann mir hier jemand auf den richtigen Weg helfen???

Gruß Jörg

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Counter Replikation
« Antwort #1 am: 21.06.06 - 17:03:26 »
Hierfür ein ProfileDoc zu verwenden, ist schon mal ganz schlecht, denn ProfileDocs werden von den Clients gecached, sprich, was der eine Client macht, bekommt der andere nicht mit.
Weiters: Während einer Replikation kannst Du keine Werte irgendwie auf Null setzen.

Denkbar wäre folgendes Procedere: Es muss eine "führende Replik" gegen, in der in einem NotesDocument (eben kein ProfileDocument!) durch einen Agent täglich ein TimeStamp abgelegt wird in einem Item, welches beispielsweise den Servernamen als Itemname trägt.

Beim Öffnen einer weiteren Replik wird eine Prüfung durchgeführt: Ist der TimeStamp des führenden Servers vom heutigen Tag? Wenn ja: Ist der TimeStamp für diesen Server (in einem entsprechenden Item) älter? Dann Counter für diesen Server auf 1 setzen und neuen TimeStamp setzen für diesen Server.
Wenn nicht: Ist der TimeStamp für diesen Server vom heutigen Tag? Dann nichts machen, sonst auf den heutigen Tag setzen und den Counter inkrementieren.

Das aber nur so als erste Überlegung.

Mit Formelsprache ist bei solch einem Procedere aber nichts zu machen.

Bernhard

Offline Jörg

  • Aktives Mitglied
  • ***
  • Beiträge: 175
Re: Counter Replikation
« Antwort #2 am: 22.06.06 - 08:45:17 »
Hi,

Danke für den Hinweis.

Kann ich den Agent auf eine Weise mitteilen , das der
TimeStamp nur aktuallisiert werden soll, wenn sich die
führende Replik  auf den Server befindet und nicht lokal??
Denn dann ist dies der Weg denn ich für meine geplante Funktion
gehen kann.

Gruß Jörg

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Counter Replikation
« Antwort #3 am: 22.06.06 - 09:57:29 »
Natürlich: Du lässt den Agent nur auf dem führenden Server laufen.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz