Problème avec un agent

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

Problème avec un agent

Messagepar abertisch » 02 Déc 2010 à 14:39

Bonjour,

J'ai un petit problème avec un agent qui s'exécute sur le trigger "After new mail has arrived".

L'agent s'exécute très bien mais fait un lourd traitement (~12h). La base est répliquée sur 2 autres serveurs toutes les 30 minutes.

Une fois par jour à heure fixe (6h du mat) l'agent s'exécute sur un des 2 autres serveurs :shock: alors qu'il tourne déjà depuis plusieurs heures sur le serveur de traitement et il me faut la merde dans mon traitement :x

J'avais jamais eu ce problème avec des serveurs en 7 mais depuis la migration en 8.5.1 FP3, j'ai ce problème.

Qqun aurait-il une idée ?

Merci de votre aide. :wink:
Dernière édition par abertisch le 06 Déc 2010 à 09:09, édité 1 fois.
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Michael DELIQUE » 02 Déc 2010 à 14:42

salut

si je comprend bien tu as 12h de traitement à chaque "After new mail has arrived" !?
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 abertisch » 02 Déc 2010 à 14:46

Salut,

J'ai un processus qui ne démarre que lors de la réception d'un mail. Ce traitement peut-être plus ou moins long mais le problème ce présente lorsqu'il y a 12h et plus de traitement.

Mon plus gros problème c'est pas le traitement mais bien l'exécution de l'agent sur plusieurs serveurs... :shock:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar Michael DELIQUE » 02 Déc 2010 à 14:50

tu recois bcp de mails ?

ce triggers est réputer pour pas etre top !
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 abertisch » 02 Déc 2010 à 14:52

Michael DELIQUE a écrit:tu recois bcp de mails ?

ce triggers est réputer pour pas etre top !


Non le mail n'arrive qu'une fois par jour à heure plus ou moins fixe.

Mais le plus drôle ce que l'agent s'exécute tout seul durant toute la journée alors qu'il n'y a aucun mail.
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar roubech » 04 Déc 2010 à 01:57

un traitement qui dure 12h, j'hallucine, sachant que le timeout par défaut de l'amgr est de 10 min
si l'agent est planifié pour tourner apres reception sur le serveur A, j'imagine qu'il s'agit d'un autre agent qui est planifié à heure fixe sur le serveur B (faisant surement appel au même code)
mais pourquoi faire tourner le meme traitement sur un autre serveur ?

si tu veux éviter qu'ils se recoupe, quand l'un démarre, qu'il mette un flag quelque part pour que l'autre puisse vérifier le flag avant de démarrer
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar d.bugger » 05 Déc 2010 à 00:34

Es-tu convaincu que l'agent est optimisé à donf ? Pourquoi ça tourne 12h ? As-tu 2000 db.Search dedans, dans une base de 1000000 documents ?

Suggestion : couper l'agent en plusieurs étapes, chaque étape dans son agent, avec des documents pour des résultats intermédiaires, s'il faut .
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Messagepar Michael DELIQUE » 05 Déc 2010 à 15:53

re,

ouaip, je serai curieux de jeter un oeil au code...
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 abertisch » 06 Déc 2010 à 09:08

Bonjour,

Alors pour répondre à certaines questions le pourquoi 12h, le code, etc...

Sachez simplement que c'est un import de documents (~100'000) dans des bases notes (~95'000) et création de mails.
Alors oui c'est long mais j'ai déjà fait pas mal de modifications afin de réduire le temps de traitement. Mais voilà je n'ai gagné que 12h... il en reste encore 12h.

Mais j'ai trouvé une solution temporaire qui ira très bien.

Merci de votre aide.
Dernière édition par abertisch le 06 Déc 2010 à 13:31, édité 1 fois.
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar d.bugger » 06 Déc 2010 à 11:44

95K docs... :shock: je comprends.

N'oublie pas
NotesView.AutoUpdate= False
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Messagepar Michael DELIQUE » 06 Déc 2010 à 11:51

je dirais :

- pas de computewithform
- pas de getNTHDocument

pas d'instanciations de vue/database dans les boucles si c'est toujours la même.
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 abertisch » 06 Déc 2010 à 13:30

Michael DELIQUE a écrit:je dirais :

- pas de computewithform
- pas de getNTHDocument

pas d'instanciations de vue/database dans les boucles si c'est toujours la même.


C'est pas vraiment le côté programmation qui me pose problème mais plus l'enclenchement de l'agent sur plusieurs serveurs sans aucune raison.

Mais je viens de relire ma phrase du dessus mais je voulais dire que c'est une importation de documents dans 95'000 bases notes. Le nombre de documents en largement supérieur à 100'000 docs :lol:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar d.bugger » 06 Déc 2010 à 13:43

95K bases ?? Merde divine...

Pour éviter l'exécution sur les autres serveurs, crée un document (profil?) qui contient le nom du master-serveur qui exécute l'agent. L'agent commence par ouvrir ce document, et ne continue que si son nom est dedans. Sur les autres, il faut terminer l'agent tout de suite.
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Messagepar abertisch » 06 Déc 2010 à 13:57

d.bugger a écrit:95K bases ?? Merde divine...

Pour éviter l'exécution sur les autres serveurs, crée un document (profil?) qui contient le nom du master-serveur qui exécute l'agent. L'agent commence par ouvrir ce document, et ne continue que si son nom est dedans. Sur les autres, il faut terminer l'agent tout de suite.


Je te le fais pas dire... niveau maintenance c'est encore gérable, l'application est très autonome :D

Idée intéressante, je note. Merci. :wink:
"Lotus, il n'y a qu'en rouleaux que ça fait pas mal au cul"
abertisch
Roi des posts
Roi des posts
 
Message(s) : 763
Inscrit(e) le : 25 Oct 2006 à 13:51
Localisation : Suisse

Messagepar roubech » 06 Déc 2010 à 21:59

roubech a écrit:si l'agent est planifié pour tourner apres reception sur le serveur A, j'imagine qu'il s'agit d'un autre agent qui est planifié à heure fixe sur le serveur B (faisant surement appel au même code)
mais pourquoi faire tourner le meme traitement sur un autre serveur ?

ou se peut-il que ce soit le même agent mais que le délai de réplication fait que "l'arrivée du mail" qui déclenche l'agent sur le second serveur bien après ?
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Suivant

Retour vers Développement