Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Schocke am 29.12.04 - 10:29:01
-
hallo,
ich habe mir einen Webagent erstellt der auf das Ereignis WebQuerySave eragieren soll. Das funktioniert auch soweit. Habe ich getestet indem ich in den Agent die Zeile:
Print "Mein Name ist Bond, James Bond3"
mit aufgenommen habe. Wenn ich jetzt mit dem Internet Eplorer aud die Webapplication gehe, und dort speicher bekomme ich auch die dementsprechende Ausgabe. Den Agent möchte ich in Lotus Script schreiben.
Nur wie kann ich das ganze in der Laufzeit debuggen ? Habe Breakpoints im Agent gesetzt, den Script debugger eingeschaltet. Der Agent läuft nur scheint der Debuger das nicht mit zu bekommen. Was mache ich falsch ?
-
Hi
Web Agents können meines Wissens nicht debuggt werden (evtl. mit Remote Debugger? aber der geht ja auch nur für scheduled Agents oder habe ich mich da verlesen?)
Eine Möglichkeit wäre das Verwenden eines Log Files ( NotesLog oder OpenLog von OpenNTF.org). Dies setzt natürlich ein gutes Errorhandling voraus.
gruss
umi
-
Web-Agenten können definitiv mit Board-Tools nicht entwanzt werden, denn die laufen auf dem Server, und nicht lokal. Der Browser bietet da leider keine Debug-Schnittstelle an, mit der man sich dann mit dem HTTP-Server unterhalten könnte. Da gibts nix dagegen. Hinderlich ist auch, dass die Standard-Fehlermeldungen häufig einfach verloren gehen. Daher ist der Ratschlag - ein super-gutes Error Handling zu haben, die einzige mögliche Methode, die Situation in den Griff zu bekommen.
-
Das einzige was geht - und oft auch sehr gut hilft -
sind Messageboxes in LS a la "Bin hier" oder "Wert x = 15".
Die werden dann im Logbuch oder direkt auf der Server-Konsole ausgegeben und man weiß dann wenigstens, wie weit der Agent ungefähr kommt.
Muss man dann, wenn alles läuft, natürlich wieder deaktivieren oder entfernen.
Aber wie gesagt, das ist einfach aber hilft oft sehr gut.
Gruss,
Uwe
-
Sowas lässt sich ja auch mit ins Errorhandling integrieren, und sollte eigentlich auch dort mit platziert werden.
-
Schade das das nicht geht :'(
-
Tja, so ist Web-Entwicklung .........
-
Hallöchen,
es gibt seit Notes 6 die Möglichkeit, den Remote-Debugger für das Debuggen von Serverseitig laufenden Agenten zu nutzen.
Das geht mit einem Trick auch in Agenten, die in solchen Ereignissen wie WebQuerySave ausgelöst werden.
Dazu muss man in den Agenten neben den Haltepunkten auch ein sleep einbauen (am besten 15 Sekunden oder so), dann aus dem web das Ereignis starten, und im Notes-Client den Remote-Debugger starten. Hier kann man nun aus einer Liste der laufenden Ageneten (dank sleep sollte unser Agent noch laufen) den Agenten auswählen und debuggen. :o
So funktioniert das bei mir...
Grüße Thomas
-
Noch mal Hallo,
ich habe noch einen Nachtrag:
Das Remote-Debugging muss im Serverdokument eingeschaktet werden.
Unter den Tasks gibt es den Reiter 'Remote Debug Manager'.
Dort kann auch eine generelle Wartezeit für alle Agenten nach dem Start angegeben werden. Eleganter ist das aber mit dem sleep...
Thomas
-
Das klingt doch sehr interessant.
Staune immer wieder, was man mit einer ordentlichen Portion Phantasie für Sachen aus Notes herausholen kann, die eigentlich als "geht sicher nicht" abgehakt werden.
Wir werden das hier auf jeden Fall mal ausprobieren.
Gruss,
Uwe
-
und Einen hab ich noch...
Es kommt bei mir vor, dass trotz Einschalten im Serverdokument der RDebug-Task nicht beim Starten des Servers mitgestartet wird. Kann man ja mit 'sh task' an der Konsole nachschlagen.
Dann einfach 'load rdebug' an der Konsole und dann sollte es endgültig funzen...
Ich hoffe, jetzt hab ich nix mehr vergessen ;D
Grüße Thomas
-
und noch einmal...
ich hatte NATÜRLICH noch was vergessen! :P
Was umi geschrieben hatte, nämlich das nur schedul'te Agenten debuggt werden können, ist richtig. Deshalb müssen die entsprechenden Agenten auf 'Scheduled' und bei der Ausführung auf 'never' gesetzt werden. Diese Agenten können dann trotzdem aus den WebQuery-Ereignissen gestartet werden, allerdings kann dann in den Sicherheitseinstellungen für den Agenten der Haken für 'allow Remote-Debugging' gesetzt werden.
JETZT hab ich hoffentlich wirklich alles...
Thomas