Hallo,
ich verwende die Klasse NotesLog um in meinen produktiven Anwendungsdatenbanken die Aktivität von Agenten zu überwachen. Es ist vorgekommen, dass die Kollegen der zentralen Administration die jeweiligen Agenten falsch eingestellt hatten und dadurch Fehler verursacht wurden. So kann ich nachvollziehen, ob die Agenten zur richtigen Zeit bzw. in der richtigen Reihenfolge laufen.
Codemäßig sieht das dann z. B. so aus:
###########schnipp##############
Set Lg = New NotesLog ( ag.Name + " Agent in " + db.Title + " on " + sname )
Call Lg.OpenNotesLog( "", db.FilePath )
****sonstiger Code**********
msg = "Es wurden " + Str(Cnt) + " Dokumente aktualisiert." + Chr(10)
msg = "Von " + Str(coll.count) + " Dokumenten im Papierkorb wurden " + Str(countR) + " Dokumente erfolgreich gelöscht;" + Chr(10)
Call Lg.LogAction(msg)
msg = "diese Dokumente befanden sich " + purgedays + " Tage im Papierkorb;" + Chr(10)
msg = msg + "Agent-Laufzeit RecyBin: " + Format(Now - StartTime, "Long Time") + Chr(10) + Chr(10)
Call Lg.LogAction(msg)
Call Lg.Close
###########schnapp#############
Das Log wird dabei in der Anwendungsdatenbank geschrieben und ich kann mir dann die Ergebnisse in einer speziellen Ansicht anschauen.
Das funktioniert auch soweit ganz gut.
Wenn ich allerdings im Test den Agenten direkt aus dem Designer starte, bekomme ich immer bei Call Lg.OpenNotesLog( "", db.FilePath ) den Fehler "Noteserror: Datei nicht vorhanden:dbname.nsf". Dabei ist dbname.nsf die Datenbank, in der ich mich gerade befinde. Ich muss dann zum Testen die ganze Log-Geschichte auskommentieren und dann läufts.
Warum ist das so? Wenn also die Agenten z. B. zeitgesteuert starten, läufts; wenn ich dieselben Agenten auf demselben Server aus dem Designer starte funzt die Log-Sache nicht!