Heute konnte ich ein Problem eines meiner Kunden lösen: Ein geplanter Server-Agent
lief einfach nicht!
Eigentlich lief er doch, nur tat er
einfach nichts. Wenn man ihn z. B. per Agent Manager aufgerufen hat (z.
B. mit tell amgr run "some-db.nsf" 'Test'),
erschienen folgende zwei Zeilen im Server-Protokoll:
AMgr: Start executing agent 'Test' in 'some-db.nsf'
AMgr: Agent 'Test' in 'some-db.nsf' completed execution
Aber selbst ein einfaches Print
"TEST"
in der ersten Zeile der Initialize-Prozedur gab nichts aus - gar nicht
erst zu sprechen von der eigentlichen Aufgabe des Agenten.
Wir haben (wirklich!) alles geprüft,
was irgendwie Einfluss haben könnte - u.a. die Einstellungen zur Server-Sicherheit,
die Anwendungseigenschaften ("Hintergrundagenten in dieser Datenbank
nicht ausführen"), Zugriffskontrollliste (ACL), die Eigenschaften
des Agenten...
Dann habe ich Schritt für Schritt den
Agenten nachgebaut. Erst die Use-Befehle, dann Stück für Stück den restlichen
Code, und alles getestet, wieder und wieder: Es lief so wie es sollte.
Schließlich habe ich den vermeintlich
"korrupten" Agenten gelöscht und den neue Agenten umbenannt,
so dass er hieß, wie der alte. Und in dem Moment hörte er auf zu funktionieren!
Okay, wieder zurück umbennant - läuft.
Noch einmal auf den Namen des ursprünglichen Agenten geändert - läuft nicht.
Weiter im Domino Administrator den "Gottmodus"
(Full-access administration) aktiviert und die Datenbank neu im Designer
inspiziert. Gibt es vielleicht einen bisher unsichtbaren Agenten mit dem
gleichen Namen? Nöps, auch nichts.
Aber ich fand eine Script-Bibliothek
mit exakt demselben Namen wie der Agent. Naja, vielleicht... Umbenannt
... und ... der ... Agent ... LÄUFT!
Was habe ich daraus gelernt: Eine
Script-Bibliothek verhindert die Ausführung eines Agenten, wenn beide gleich
heißen!
Domino Server NICHT neustarten (aktualisiert²) - IF installieren!
HCL informiert über einen kritischen Fehler, der zu Routingfehlern führt Mehr