recuperer des variables de session lors du timeout par un listener - Java - Programmation
Marsh Posté le 21-06-2004 à 18:26:07
pour moi, tu devrais recevoir l'evenement avant que les attributs soient retirés ... j'ai vérifié, mais c'est pas précisé dans la spec des servlets. mais ca me parait évident.
Sinon, essaye avec un HttpSessionAttributeListener. Peut être que l'évenement attributeRemoved est lancé au moment de la destruction de la session ... mais c'est de la bidouille
Marsh Posté le 22-06-2004 à 10:08:30
dans les docs que j'ai consulté ils disent que c'est après
en gros tout est dispo sauf les attributs (breakpoint sous eclipse)
Marsh Posté le 22-06-2004 à 10:31:02
cooltwan a écrit : dans les docs que j'ai consulté ils disent que c'est après |
liens ?
y a quoi d'intéressant dans une session a part les attributs ?
Marsh Posté le 22-06-2004 à 10:33:08
pour attributeRemoved ca marche même si c'est un peu crade
Marsh Posté le 22-06-2004 à 10:34:03
benou a écrit : liens ? |
date de creation, dernier accès, id et autres joyeusetés ...
Marsh Posté le 22-06-2004 à 12:04:33
http://www.jguru.com/faq/view.jsp?EID=994198
When the HttpSessionListener.sessionDestroyed() method is called by the container, the session is already dead (the actual HttpSession object is alive, though). If the browser sends a request just before that moment (session still alive), the session timeout is renewed. If the browser sends a request just after that moment (session already dead), we cannot recognize the relation between "the session that was killed about 48 seconds ago" and the incoming request (which doesn't have an existing session, yet)
Marsh Posté le 22-06-2004 à 14:38:59
je comprend pas pkoi la session est détruite avant l'appel
J'y vois pas de raison, mais plein d'inconvénients ...
Marsh Posté le 22-06-2004 à 15:00:50
benou a écrit : je comprend pas pkoi la session est détruite avant l'appel |
pas grave on est en train de recoder notre propre serveur à 100%
Marsh Posté le 22-06-2004 à 18:35:26
cooltwan a écrit : pas grave on est en train de recoder notre propre serveur à 100% |
Marsh Posté le 22-06-2004 à 19:58:18
benou a écrit : je comprend pas pkoi la session est détruite avant l'appel |
moi non plus mais cela dit, deux remarques:
- le nom de la methode est correct et laisse entendre que la session à déjà été detruite
- sur l'article jguru en questions ils disent que l'objet HttpSession est tjs là, ce qui sous entend que le seul truc qui a "changé", c''est que la session n'est plus valide donc plus utilisable par l'utilisateur; par contre ça ne dit pas - au contraire, même - que les attributs stockés dans cette meme session sont absents.
Marsh Posté le 23-06-2004 à 16:07:16
cooltwan a écrit : y a des courageux là où je bosse ... |
nan mais .... POURQUOI FAIRE ???
Marsh Posté le 23-06-2004 à 16:08:19
y'en a bien qui réécrivent un moteur ejb
Marsh Posté le 23-06-2004 à 16:11:33
the real moins moins a écrit : y'en a bien qui réécrivent un moteur ejb |
a l'époque les solutions gratuites n'existaient pas et le coût des licences des produits payants était assez dissuasif
mais bon, j'y suis pour rien moi de ce que fait ma boite
Marsh Posté le 23-06-2004 à 16:16:57
benou a écrit : nan mais .... POURQUOI FAIRE ??? |
vu qu'on utilise un spectre faible de tomcat pour l'instant et que l'on a des problemes de perfs c'est dans le but d'avoir de meilleurs perf je crois
Marsh Posté le 23-06-2004 à 16:37:30
cooltwan a écrit : vu qu'on utilise un spectre faible de tomcat pour l'instant et que l'on a des problemes de perfs c'est dans le but d'avoir de meilleurs perf je crois |
problème de perfs ?
vraiment ??
vous avez regardé à quel niveau tomcat bouffait les perfs ?
parce que, mis à part l'execution en elle même de la servlet, je pense que l'acheminement d'une requête doit être plutot performant ...
Marsh Posté le 24-06-2004 à 11:06:38
benou a écrit : problème de perfs ? |
Dan ma boîte, on utilise Cocoon pour base de notre soft de publication et on fait tourner dans Tomcat...et ça bouffe un max de resources.
On a commencé avec la série 3.x de Tomcat (sans cocoon), et au fil des versions (4.x puis 5.x) on a vu les besoins en mémoire de Tomcat crever le plafond.
Marsh Posté le 24-06-2004 à 11:07:30
prenez resin
et puis bon, cocoon doit pas y etre pour rien non plus....
Marsh Posté le 24-06-2004 à 11:27:07
the real moins moins a écrit : prenez resin |
Resin est payant !!! mais on peut pas tout avoir
Cocoon et gourmand même si depuis la série 2.1.x ils ont fait de très gros progrès niveau gestion resources et mémoire
Marsh Posté le 24-06-2004 à 11:35:26
et le soft de machin truc de ta boite c'est du gratuit et libre peut etre?
Marsh Posté le 24-06-2004 à 11:40:45
the real moins moins a écrit : et le soft de machin truc de ta boite c'est du gratuit et libre peut etre? |
Ben heu...
Marsh Posté le 24-06-2004 à 14:53:46
pascal34 a écrit : Dan ma boîte, on utilise Cocoon pour base de notre soft de publication et on fait tourner dans Tomcat...et ça bouffe un max de resources. |
T'es sûr que c'est tomcat qui bouffe plus de ressources ???? vraiment ???? j'ai un GROS GROS doute là !
vous avez profilé pour savoir où elle passait cette mémoire ?
edit : ma question initiale reste ouverte
Marsh Posté le 25-06-2004 à 08:42:14
benou a écrit : T'es sûr que c'est tomcat qui bouffe plus de ressources ???? vraiment ???? j'ai un GROS GROS doute là ! |
Ho que oui. même si Cocoon est très gourmand, Tomcat 5.x en lui-même pompe pas mal.
Marsh Posté le 25-06-2004 à 11:24:15
pascal34 a écrit : Ho que oui. même si Cocoon est très gourmand, Tomcat 5.x en lui-même pompe pas mal. |
Citation : vous avez profilé pour savoir où elle passait cette mémoire ? |
Marsh Posté le 25-06-2004 à 15:37:29
faudrai que je teste un peu avec jfluid notre appli (generation de poly, site web à partir de plein de fichiers xml)
Marsh Posté le 21-06-2004 à 15:32:53
c'est possible ou pas ?
car avec HttpSessionListener via sessionDestroyed
mes variables de session ne sont plus accessible (attributes à null) j'en deduis que la session doit deja etre detruite ...
or j'ai besoin d'info stocké dedans pour mon log de l'appli (user en cours dans un objet maison)
comment faire ?