Hmja... schöne Tips, danke.
Ich habe vor Jahren schonmal eine andere Lösung umgesetzt. Prinzip: Die Agenten in den DB's sind selbst nicht für periodischen Lauf eingestellt. Zusätzlich gibt es eine separate DB, in der per Konfigurationsdokument das Verhalten der Agenten beschrieben wird. In dieser DB läuft dann 1 Agent alle 5 Minuten und führt die konfigurierten Agenten, wenn die Zeit ran ist, auf dem entsprechenen Server aus. (tell amgr run ...) Also sozusagen eine eigene Amgr-Queue-Queue.
Damit sind dann auch abenteuerliche Konfigurationen möglich wie:
- Agent1 soll auf Server1 um 5:00, 5:30 und 6:00 Uhr laufen, dann nochmal um 12:15 Uhr und um 19:30 Uhr.
- Agent2 soll auf Server1 jede halbe Stunde laufen von 22:00 - 06:00 Uhr sowie von 06:00-21:45 alle 15 Minuten auf Server2, Server3 und Server4. Generell kein Agentenlauf sonntags.
- Tip, falls Ihr sowas mal selber baut: per Formelsprache-Evaluierung ermitteln, ob der Agent "jetzt" laufen soll, läßt so einiges an Konfigurationen zu
- also auf keinen Fall nur mit einer einfachen Liste arbeiten... irgendwann braucht man das Formel-Gedöhns ja doch
- Für Wartungen kann das Verhalten der Agenten per Konfiguration beeinflußt werden.
- Auch Schwenks der Agentenkonfiguration so recht einfach möglich: altes Queue-Dokument deaktivieren, neues aktivieren.
- usw. usf.
Ich will hier aber nicht mit Kanonen auf Spatzen schießen und Domino - wenn möglich - seinen Job machen lassen. Bzw. ich möchte das erst machen, wenn ich wirklich muss.
Zum Thema "nur ein Agent, der alles macht":
- unsere Situation: Bei vielen Agenten geht es jeweils darum, eine überschaubare Anzahl von Dokumenten zeitnah zu bearbeiten. Das auf einen einzelnen Agenten umzustellen, stelle ich mir schwierig vor.
- "Ausführen im Namen von". Viele Agenten senden Mails mit spezfischen Absenderadressen und mit einem einzelnen "großen" Agenten kann ich diese Agenteneigenschaft nicht dynamisch ändern. Für den Mailversand bliebe mir dann nur noch der mail.box-Weg, der von der IBM nicht offiziell supported wird.
- nochmal "Ausführen im Namen von": was, wenn die einzelnen Agenten nur bestimmte Rechte haben? Und das auch so gewollt bzw. unseren Auftraggebern auch so gefordert ist? Das deckt ein zentraler Agent nicht ab.
- Thema Konfiguration, Protokollierung, Überwachung, Debugging stelle ich mir schwierig vor. Für den Fall, daß Agenten aus 200 DB's mit identischem Design und prinzipiell gleichen Anforderungen zusammengefaßt werden, mag das noch gehen... das ist bei uns aber in dem Ausmaß nicht der Fall.
Da die Agenten in der Regel wirklich sehr kurze Laufzeiten haben, hatte ich auch kein Problem vermutet. Bis unsere Admins mit der Nachricht um die Ecke kamen, daß einige Agents nicht ausgeführt wurden. Wohl, weil die Amgr Queue "übergelaufen" ist... und konfigurieren könne man da nichts.
Ich wehre mich auch so ein bischen dagegen, daß der Domino Server ab einer bestimmten Last einfach Agenten "vergißt". Sollte da nicht eine Fehlermeldung kommen und das Einstellen von neuen Agents in die Queue eine Zeitlang ausgesetzt werden, bis wieder Platz in der Queue ist?
Aktueller Stand:
wir werden wohl einen Teil der Agenten auf anderen Servern laufen lassen.
Ich wünsche ein erholsames Wochenende.