Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Bille am 20.11.04 - 11:56:09

Titel: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: Bille am 20.11.04 - 11:56:09
Hallo!

In verschiedenen DB's laufen einmal täglich Agenten. Damit ich die Ausführung der Agenten besser überwachen kann, hab ich eine Funktion integriert, die mir pro ausgeführten Agenten ein Dokument in einer neuen Datenbank (ag_log.nsf) angelegt.

     Call SY_Logeintrag(db.title, "Auswertungs-Melder", Now(),col.count & " Dokumente geprüft")

Sub SY_LogEintrag (DBName As String, Agentname As String, Agentzeit As Variant, Hinweis As String)
     
     Dim session As New notessession
     Dim db As New notesdatabase("XY2639GS00nmdb","\bw\ag_log.nsf")
     Dim doc As New Notesdocument(db)
     
     doc.form = "Logeintrag"
     doc.DBName = DBName
     doc.Agentname = Agentname
     doc.Agentzeit = Agentzeit
     doc.Hinweis = Hinweis
     
     Call doc.Save(False,False)
     
End Sub

Wenn ich den Agenten über "rechte Maustaste - Starten" aufrufe, funktioniert's einwandfrei und ein neues Dokument in der ag_log.nsf wird erstellt.
Leider geschieht das nicht bei der geplanten Agentausführung (täglich um 8.00 Uhr).

Im Protokoll des Agenten wird angezeigt, dass er ausgeführt wurde:

     Agent 'Auswertungs-Melder' wurde am 20.11.2004 08:00:45 gestartet
     Bearbeite alle Dokumente in der Datenbank: insgesamt 115
     115 Dokumente gefunden, die die Suchkriterien erfüllen
     LotusScript Code ausgeführt
     Agent 'Auswertungs-Melder' wurde am 20.11.2004 08:00:45 beendet

Kann es mit irgendwelchen Zugriffsrechten zu tun haben?
LocalDomainServers ist "Manager" der DB ag_log.nsf
(Server: OS/2 mit Notes 4.57a)

Kann mir bitte jemand helfen?

Gruß,
Bille

***Edit***
Thread auf "erledigt" gesetzt
Titel: Re: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: TMC am 20.11.04 - 12:07:16
Bille,

schätzungsweise liegts an der Angabe des Servers, dies mögen serverbasierende Agenten nicht.

Bau mal folgendes ein anstatt Deinem Dim db ....:
Code
	Dim db as NotesDatabase
	Const SERVER_NAME$ = "XY2639GS00nmdb"
	Const FULLPATH_DBLOG$ = "\bw\ag_log.nsf"
	If session.IsOnServer Then
		Set db = New NotesDatabase("" , FULLPATH_DBLOG) 		
	Else
		Set db = New NotesDatabase(SERVER_NAME , FULLPATH_DBLOG) 		
	End If

Die Log-DB muss aber auf dem selben Server sein.

Matthias
Titel: Re: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: Bille am 20.11.04 - 12:15:02
Vielen Dank Matthias, ich werd's gleich abändern und testen.
Ich poste dann das Resultat.

Servus
Titel: Re: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: Bille am 20.11.04 - 13:56:12
Nach Änderung des Scripts erscheint nun beim geplanten Aufruf des Agents folgende Fehlermeldung in der Zeile:

Database ag_log.nsf hat not been opened yet

Wenn ich es über die Notes-Workstation am Server aufrufe, klappt das Erstellen des neuen Dokuments wunderbar. (Klar, denn auch hier kommt der Else-Zweig der If-Bedingung zum Zug.)

Mein Fehler liegt also in der Zeile
     Set db = New NotesDatabase("" , FULLPATH_DBLOG)   

Ist hier noch das explizite Öffnen der DB notwendig?

Bille

PS: @Matthias: Die ag_log.nsf liegt am gleichen Server.
Titel: Re: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: TMC am 20.11.04 - 15:31:22
Ist hier noch das explizite Öffnen der DB notwendig?
Eigentlich nicht. Du kannst aber mal in die R4-Designerhilfe sehen.


Was mir noch nicht gefällt ist:
Code
"\bw\ag_log.nsf"

Nimm da mal den führenden Backslash raus. Außerdem kannst Du mal den 2. Backslash in einen normalen Slash "/" umändern.

Wenn das auch nicht hilft: evtl. mal Server neustarten.


HTH
Titel: Re: Agent wird nicht wie gewünscht ausgeführt
Beitrag von: Bille am 21.11.04 - 13:43:33
Hi Matthias,

es lag tatsächlich am Dateipfad.
Ich hab den Eintrag (wie von Dir beschrieben) geändert auf

     Const FULLPATH_DBLOG$ = "bw/ag_log.nsf"

und scho geht's.

Besten Dank!!!

Bille