Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Jürgen Schomann am 21.07.09 - 19:41:15

Titel: Zeitbegrenzung für Agenten
Beitrag von: Jürgen Schomann am 21.07.09 - 19:41:15
Im Serverdokument kann u. a. die maximale LostusScript/Java Ausführungszeit für den Agent-Manager festgelegt werden.
Bei einem LotusScript-Agenten wird beim Erreichen dieser Zeit auch immer noch das Terminate-Ereignis durchlaufen.
Meine Frage ist, ob man hier noch irgendwie eine Information erhalten kann warum die Beendigung erfolgte. In diesem Fall wäre es die Zeitgrenze, es könnten ja noch andere Ursachen sein.

Eine Frage noch dazu. Es wird bei o. g. Zeitgrenze ausdrücklich von LotusScript/Java gesprochen. Soll das bedeuten, dass @-Formel- Agenten keine Zeitbeschränkung haben?
Titel: Re: Zeitbegrenzung für Agenten
Beitrag von: koehlerbv am 21.07.09 - 20:36:48
Nach meinem Kenntnisstand bekommst Du keine Information im Terminate des Agents, ob dieser von der Laufzeitkontrolle abgeschossen wurde.
Du hast aber mehrere Möglichkeiten:
- Zeit im Agent stoppen und mit den EInstellungen vergleichen
- Error-Status kontrollieren - Agents müssen sich ja vernünftigerweise sowieso selbst überwachen. Warum also das Terminate ausgeführt wurde, kannst Du selbst (weitestehend) überprüfen.

Ich bevorzuge Variante 1. Hierbei ist allerdings eine gewisse "Reserve" einzuplanen - so, wie "sofort" für den AMgr nicht das selbe heisst wie für uns, gilt das auch für "60 Minuten"  ;D

Bernhard
Titel: Re: Zeitbegrenzung für Agenten
Beitrag von: pram am 21.07.09 - 23:48:44
am Einfachsten gehts vermutlich wenn du dir in der "initialize" ein Statusflag merkst und dies beim terminate auswertest:

dim running%
sub initialize
  running = true
  ... machwas
  running = false
end sub

sub terminate
  if running then print "Agent wurde unerwartet beendet"
end sub

Hinweis: Im Terminate hat man nur begrenze "Ressourcen" übrig. d.h. man kann nicht mehr viel Objekte anlegen und Objekte die man im "initialize" angelegt hat, leben u.U. im terminate nicht mehr.

Gruß
Roland