Domino 9 und frühere Versionen > ND9: Entwicklung

Nach Eingang neuer Mail Agent - läuft, tut aber nix

(1/2) > >>

Captain_Future:
Hi,
nach einer Ewigkeit nicht mehr aktiv programmieren, wollte ich mich wieder einarbeiten und einen Agenten schreiben, der den Maileingang auswerten soll.
Zur Übung hab ich erstmal nur den Rumpf erstellt, um durch Logging zu schauen, ob der Agent auch so startet wie gewünscht.
Die Datenbank (MailR9) habe ich mit einem "Nach Eingang neuer Mail"-Agenten versehen. Signiert ist er mit der Server-ID.


--- Code: ---Dim session As New NotesSession
Dim db As NotesDatabase
Dim mdoc As NotesDocument
Dim mdoccol As NotesDocumentCollection
Dim mailcount As Long
Dim profile As NotesDocument

Set db = session.currentdatabase
Set mdoccol = db.Unprocesseddocuments
Set profile = db.Getprofiledocument("_profilenewmail")

mailcount = mdoccol.Count
call profile.Replaceitemvalue("dbs_letztemail", Now())
Call profile.save(True,False)
Call LogEvent(mailcount & " mails to proceed", SEVERITY_LOW, Nothing)
Print mailcount & " mails to proceed"
Set mdoc = mdoccol.Getfirstdocument()
While Not mdoc Is Nothing
'Do some magic things
Print "Hurra! Neue Mail bekommen!"
Call LogEvent("Hurra! Neue Mail bekommen!", SEVERITY_LOW, Nothing)
Set mdoc = mdoccol.Getnextdocument(mdoc)
Wend

--- Ende Code ---
Das ist nur zu Testzwecken so schnell mal geschrieben. LogEvents und Prints habe ich nur rein, damit ich etwas Output auf der Console bzw. in einer LogDB habe.

Das Log sagt dazu:

--- Code: ---28.08.2017 13:54:20   AMgr: Received new mail event from Router for 'mailin\Testdb.nsf'
28.08.2017 13:55:21   AMgr: Start executing agent 'Neues Mail|newmail' in 'mailin\Testdb.nsf' by Executive '1'
28.08.2017 13:55:21   AMgr: 'xxx/yyy' is the agent signer of agent 'Neues Mail|newmail' in 'mailin\Testdb.nsf'
28.08.2017 13:55:21   AMgr: 'Agent 'Neues Mail|newmail' in 'mailin\Testdb.nsf' will run on behalf of 'xxx/yyy'
28.08.2017 13:56:20   AMgr: Agent 'Neues Mail|newmail' in 'mailin\Testdb.nsf' ran successfully; elapsed time was '0' ticks

--- Ende Code ---

Aber weder in der Logdatenbank wird etwas geschrieben, noch erscheinen die Prints in der Console.

Wenn ich den Agenten direkt im Designer starte, dann schreibt er in die Logdatenbank.

Bin etwas ratlos.

Gruß
CF

jBubbleBoy:
"LogEvent" kenne ich nicht als Stand-alone Funktion, kenne ich nur als Funktion der Klasse NotesLog.
Es fehlt also noch Code deines Agenten, um deine Frage korrekt zu beantworten.

Captain_Future:
Hallo Erik,

das LogEvent kommt von der ScriptLib OpenLog von OpenNTF. Aber Danke - ich hab die Funktion mal aus dem Agenten entfernt und jetzt kommen die Prints auf der Console durch.

Jetzt kann ich weiter debuggen. Irgendwo hat er noch ein Probelm mit dem Profildokument. Er schreibt nichts rein.

Mühsam ernährt sich das Eichhörnchen. Danach schau ich mir mal das OpenLog an. Ich hatte das früher immer in Anwendungen benutzt vor allem in Agenten die auf dem Server laufen.

Gruß
CF

jBubbleBoy:
OpenLog von OpenNTF hat doch seine eigene Log-Datenbank, mit Log-Maske, Ansichten usw., vielleicht hast du nur in der falschen Log-DB nachgeschaut.

Tode:
Nur so nebenbei: OpenLog hat sehr lange veraltete Funktionen verwendet, die als Deprecated gelten (LSI_Info). Eine Weile Lang hat IBM bei der Verwendung der Funktion nur auf der Console gewarnt, dass die Funktion zum Serverabsturz führen kann, aber ich meine mit einem der letzten Fixpacks / Featurepacks wurde die Funktion komplett deaktiviert und müsste per ini- Eintrag reaktiviert werden...

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln