Page 1 sur 1
Agent Java : exécution manuelle et planifiée

Publié:
21 Mars 2011 à 09:53
par joss
Bonjour,
Je traite avec un agent java des mails reçu dans une base : je convertis le body du mail en tableau via body.split("\n").
Lorsque j'exécute l'agent sur le serveur via "run/exécuter" le découpage via le split se fait correctement (une ligne mail = une ligne tableau). Par contre quand j'utilise la planification de l'agent le split ne donne pas le résultat attendu.
Pour débugger, avant d'effectuer le split ou tout autre traitement, j'ai remplacé les LF et CR du body par des caractères imprimables et effectivement dans le 1er cas (exécuter) on voit LF+CR à la fin de chaque ligne de mail. Par contre dans le second cas (planification), on voit bien le mail mais les LF + CR du mail ont disparu et il y a un LF/CR après un nombre aléatoire de caractères.
Quelqu'un aurait il une idée de piste ? Merci de votre aide.

Publié:
21 Mars 2011 à 14:31
par Michael DELIQUE
hello
en règle général lorsqu'un agent lancé sur le serveur (shcédullé ou runonserver) ne fonctionne pas de la même manière que lancé à la main il faut regader 2 choses :
- les droits de signature sur le serveur comparé aux droits de la personnes qui lance l'agent à la mains.
- si le poste de l'utilisateur ne comportes des "add-on":"FrameKork" et autre bidule en plus qu'il n'y a pas sur le serveur.

Publié:
21 Mars 2011 à 18:08
par joss
Merci pour ces indications.
Quand j'écris "exécuter l'agent sur le serveur" en fait je suis en TSE sur le serveur Domino, un designer sur ce serveur et le compte administrateur Notes. L'environnement Java est donc le même dans les 2 cas.
Mais effectivement si je baisse le niveau de sécurité de l'agent en mettant "1. Ne pas autoriser les opérations restreinte" au lieu de "2. Autoriser les opérations restreintes", j'ai le même comportement incorrecte dans les 2 cas de figure (exécution lancée à la main sur le serveur avec le compte admin et planification).
Cela confirme votre hypothèse sur un pb de droit et voudrait dire que mon agent quand il se lance en planifié n'a pas les droits "Autoriser les opérations restreintes".
L'agent quand il est planifié s'exécute avec le compte serveur. Hors mon serveur est gestionnaire (> lecteur) sur la base et dans le document serveur (Domino 8.0.2)/Security, il se trouve bien dans "Run unrestrited methods and operations".
L'agent en mode planifié devrait donc fonctionner .... Existe t'il d'autres endroits où on peut limiter les droits d'exécution du serveur ?
Merci de votre aide
fin du problème

Publié:
23 Mars 2011 à 11:27
par joss
J'ai dit des bêtises plus haut : le fait que le designer se trouve sur le serveur n'implique pas qu'il utilise le même environnement Java. Sur le serveur, en exécution manuelle c'est l'environnement Notes qui est utilisé en planification c'est l'environnement serveur. On le voit en affichant System.getProperty("java.home").
Le pb vient bien d'une différence de traitement entre l'environnement Java de Notes (sur le serveur) et l'environnement Domino (pourtant les 2 environnement sont en version Java 5.2 build 3790 SP2). Le getItemValueString("body") renvoie un résultat différent selon l'environnement.
Comme j'effectuais mes tests sur des mails qui avaient été modifiés, j'ai renvoyé de nouveaux mails et là, le traitement passe aussi sous Domino. Tout ça pour ça ...
J'ai quand même eu aussi des soucis de droits quand j'ai essayé de lancer mon agent via 'tell Amgr run ma_base mon_agent' (plutôt que de le planifier) et j'ai du modifier le java.policy.