Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Jörg am 21.06.06 - 11:43:38

Titel: Counter Replikation
Beitrag von: Jörg 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
Titel: Re: Counter Replikation
Beitrag von: koehlerbv 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
Titel: Re: Counter Replikation
Beitrag von: Jörg 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
Titel: Re: Counter Replikation
Beitrag von: koehlerbv am 22.06.06 - 09:57:29
Natürlich: Du lässt den Agent nur auf dem führenden Server laufen.

Bernhard