Agent Java : exécution manuelle et planifiée

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Agent Java : exécution manuelle et planifiée

Messagepar joss » 21 Mars 2011 à 09:53

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.
Avatar de l’utilisateur
joss
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 3
Inscrit(e) le : 24 Déc 2010 à 10:01
Localisation : Lille

Messagepar Michael DELIQUE » 21 Mars 2011 à 14:31

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.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar joss » 21 Mars 2011 à 18:08

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
Avatar de l’utilisateur
joss
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 3
Inscrit(e) le : 24 Déc 2010 à 10:01
Localisation : Lille

fin du problème

Messagepar joss » 23 Mars 2011 à 11:27

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.
Avatar de l’utilisateur
joss
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 3
Inscrit(e) le : 24 Déc 2010 à 10:01
Localisation : Lille


Retour vers Développement

cron