Ma question concerne plus l'organisation de classes que le code en lui même.
Je réalise une application web (imode) avec struts, tomcat 4.1, Apache2,
Interbase 6. Je n'ai aucun souci de montée en charge.
Un service que je souhaiterais mettre en place est l'insertion, dans une
base de données, de "mesures" (factices) qui auraient lieu toutes les 10
min, disons. Lorsque le client active ce service pendant sa session, le
robot d'insertion est instancié avec la liste des sites du client pour
lequel il souhaite faire une simulation d'insertion de mesures.
Pour mettre ceci dans le contexte struts, l'activation se ferait dans la
classe PeuplerAction. Et là, j'entrevois 2 solutions :
1°) Instancier, au démarrage de l'application, une servlet à laquelle je
pourrais ajouter ou supprimer des sites. La servlet possèderait une instance
de classe AjouteurMesureThread qui, toutes les 10 min, insère dans la base
de données une mesure pour chacun des sites qu'il possède. La servlet
jouerait donc juste le rôle de lien entre le robot AjouteurMesureThread et
l'action PeuplerAction.
Une de mes questions concernent la faisabilité de celà :
est-ce que, dans une Action, on peut atteindre une servlet qui tourne en
permanence (web.xml, <loadonstartup>)?
Que pensez-vous de cette solution?
2°) Autre solution : l'action PeuplerAction crée lui-même le thread
AjouteurMesureThread et l'ajoute dans la 'session' du client. Est-ce que le
thread sera toujours activé? Que pensez vous de cette solution sachant que
le client peut bien sûr désactiver la simulation d'insertion au cours de sa
session?
Le problème que me pose cette solution est qu'il faudra donc non plus un
thread pour tous les sites de tous les clients, mais un thread par client.
J'utilise un pool de connexion pour accéder à la base de données, mais
n'est-ce pas quand même dommage d'utiliser autant de thread?
Merci pour vos avis!
Au passage, je me suis souvent demandé le coût de garder des informations en
'session' d'un utilisateur. Faut-il faire très attention avec cela ou bien
n'est-ce important qu'avec plusieurs milliers d'utilisateurs en même temps?
(ce qui n'est pas du tout mon cas!)
Oh la la, JBuilder + apache + jk2 + tomcat, pour developper, ca me parait lourd. C'est plutot un environnement d'exploitation, ca. Mon environnement : Tomcat + eclipse + tomcat plugin (sysdeo). Un peu de configuration : Indiquer a eclipse ou est tomcat; Ensuite, pour debugger, il fautr appuyer sur le bouton. Le lancement est un peu long, mais si on code proprement, le debugging, c'est exceptionnel (non, je deconne...). Tomcat installe en service l'appli deployee avec reloadable="true"; Code, compile, teste sans rien arreter. Pour debugger, arreter le service windows et lancer tomcat depuis eclise, on passe automatiquement en debug. C'est tout gratuit et Open Source, et ca marche d'enfer...
"Vincent" a écrit dans le message news: bfls29$oth$
"Frederic Renout" a écrit dans le message news:
Bonjour,
Bonjour,
Maintenant ça tourne (cf. post précédent).
qu'est ce qui ne fonctionne pas correctement avec ton code?
En fait, c'était sans doute ça la meilleure question que je devais me poser,
car étant donné que c'était la première fois que je touchais au thread dans
une webapp, j'avais peur que cela pose un pb et j'ai négligé une autre source de bugs.
Je suis sous Tomcat/Apache2/mod_jk2, avec JBuilder6 (Entreprise). J'ai galéré à trouver ce problème parce que j'ai du mal à étudier le contenu
de mes variables. Je ne trouvais pas où sortait System.err , System.out (maintenant je viens de trouver que c'était dans Apache2logsstderr.log et stdout.log), et getServlet.log() va dans Tomcatlogs. Ce qui est pratique c'est d'ajouter un p'tit bout dans server.xml pour avoir
des logs séparés (Tomcatlogs) pour l'appli considérée : <!-- Tomcat test Context --> <Context path="/test" docBase="test" debug="0" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="test." suffix=".txt" timestamp="true"/> </Context>
A part cela, comment faites-vous pour débugger une webapps? Une technique particulière? Un outil?
Merci!
-- Vincent
Oh la la, JBuilder + apache + jk2 + tomcat, pour developper, ca me parait
lourd. C'est plutot un environnement d'exploitation, ca.
Mon environnement : Tomcat + eclipse + tomcat plugin (sysdeo).
Un peu de configuration : Indiquer a eclipse ou est tomcat;
Ensuite, pour debugger, il fautr appuyer sur le bouton. Le lancement est un
peu long, mais si on code proprement, le debugging, c'est exceptionnel (non,
je deconne...).
Tomcat installe en service l'appli deployee avec reloadable="true"; Code,
compile, teste sans rien arreter.
Pour debugger, arreter le service windows et lancer tomcat depuis eclise, on
passe automatiquement en debug.
C'est tout gratuit et Open Source, et ca marche d'enfer...
"Vincent" <azerjojo28@libertysurf.frENELVEZ-MOI> a écrit dans le
message news: bfls29$oth$1@news.tiscali.fr...
"Frederic Renout" <frederic.renout@free.fr> a écrit dans le message news:
4366171d.0307230320.1afec4bf@posting.google.com...
Bonjour,
Bonjour,
Maintenant ça tourne (cf. post précédent).
qu'est ce qui ne fonctionne pas correctement avec ton code?
En fait, c'était sans doute ça la meilleure question que je devais me
poser,
car étant donné que c'était la première fois que je touchais au thread
dans
une webapp, j'avais peur que cela pose un pb et j'ai négligé une autre
source de bugs.
Je suis sous Tomcat/Apache2/mod_jk2, avec JBuilder6 (Entreprise).
J'ai galéré à trouver ce problème parce que j'ai du mal à étudier le
contenu
de mes variables. Je ne trouvais pas où sortait System.err , System.out
(maintenant je viens de trouver que c'était dans Apache2logsstderr.log
et stdout.log), et getServlet.log() va dans Tomcatlogs.
Ce qui est pratique c'est d'ajouter un p'tit bout dans server.xml pour
avoir
des logs séparés (Tomcatlogs) pour l'appli considérée :
<!-- Tomcat test Context -->
<Context path="/test" docBase="test" debug="0" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="test." suffix=".txt" timestamp="true"/>
</Context>
A part cela, comment faites-vous pour débugger une webapps? Une technique
particulière? Un outil?
Oh la la, JBuilder + apache + jk2 + tomcat, pour developper, ca me parait lourd. C'est plutot un environnement d'exploitation, ca. Mon environnement : Tomcat + eclipse + tomcat plugin (sysdeo). Un peu de configuration : Indiquer a eclipse ou est tomcat; Ensuite, pour debugger, il fautr appuyer sur le bouton. Le lancement est un peu long, mais si on code proprement, le debugging, c'est exceptionnel (non, je deconne...). Tomcat installe en service l'appli deployee avec reloadable="true"; Code, compile, teste sans rien arreter. Pour debugger, arreter le service windows et lancer tomcat depuis eclise, on passe automatiquement en debug. C'est tout gratuit et Open Source, et ca marche d'enfer...
"Vincent" a écrit dans le message news: bfls29$oth$
"Frederic Renout" a écrit dans le message news:
Bonjour,
Bonjour,
Maintenant ça tourne (cf. post précédent).
qu'est ce qui ne fonctionne pas correctement avec ton code?
En fait, c'était sans doute ça la meilleure question que je devais me poser,
car étant donné que c'était la première fois que je touchais au thread dans
une webapp, j'avais peur que cela pose un pb et j'ai négligé une autre source de bugs.
Je suis sous Tomcat/Apache2/mod_jk2, avec JBuilder6 (Entreprise). J'ai galéré à trouver ce problème parce que j'ai du mal à étudier le contenu
de mes variables. Je ne trouvais pas où sortait System.err , System.out (maintenant je viens de trouver que c'était dans Apache2logsstderr.log et stdout.log), et getServlet.log() va dans Tomcatlogs. Ce qui est pratique c'est d'ajouter un p'tit bout dans server.xml pour avoir
des logs séparés (Tomcatlogs) pour l'appli considérée : <!-- Tomcat test Context --> <Context path="/test" docBase="test" debug="0" reloadable="true"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="test." suffix=".txt" timestamp="true"/> </Context>
A part cela, comment faites-vous pour débugger une webapps? Une technique particulière? Un outil?
Merci!
-- Vincent
frederic.renout
A part cela, comment faites-vous pour débugger une webapps? Une technique particulière? Un outil?
Merci!
Ben perso j'utilise WSAD et donc pour debugger je demarre mon serveur en mode debug et hop ca roule.
Normalement bcp de serveurs d'appli peuvent se lancer avec un remote debugger, j'imagine que tu dois pouvoir aussi faire ca avec JBuilder debuggant Tomcat
A part cela, comment faites-vous pour débugger une webapps? Une technique
particulière? Un outil?
Merci!
Ben perso j'utilise WSAD et donc pour debugger je demarre mon serveur
en mode debug et hop ca roule.
Normalement bcp de serveurs d'appli peuvent se lancer avec un remote
debugger, j'imagine que tu dois pouvoir aussi faire ca avec JBuilder
debuggant Tomcat
A part cela, comment faites-vous pour débugger une webapps? Une technique particulière? Un outil?
Merci!
Ben perso j'utilise WSAD et donc pour debugger je demarre mon serveur en mode debug et hop ca roule.
Normalement bcp de serveurs d'appli peuvent se lancer avec un remote debugger, j'imagine que tu dois pouvoir aussi faire ca avec JBuilder debuggant Tomcat