Salut,
J'ai un peu de mal à comprendre comment marchent les listeners...
J'utilise HttpSessionListener, j'ai mis un point d'arret sur la première instruction de ma fonction "public void sessionDestroyed(HttpSessionEvent evt)"
(j'ai mis les lignes correspondantes au listener dans web.xml)
Voici ce que j'ai : longtemps apres avoir fermé ma fenêtre (surement au timeout de ma session), l'application s'arrete enfin sur mon point d'arret. La plupart du temps ma variable dbCon est nulle, parfois non (???).
Voici ce que je veux : si un utilisateur ferme sa fenetre, mon listener m'avertit immédiatement, de telle manière que je puisse demander à ma connexion base de données de faire l'opération commit (à cause d'instructions SQL qui bloquent certains enregistrements, et qu'il faut débloquer).
j'ai essayé d'utiliser aussi les classes HttpSessionBindingListener et HttpSessionAttributeListener, mais l'application ne semble appeler aucune des fonctions quand je ferme mon navigateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class SessionListener implements HttpSessionListener { // new session public void sessionCreated(HttpSessionEvent evt) {} // if session is closed public void sessionDestroyed(HttpSessionEvent evt) { HttpSession session = evt.getSession(); DBConnect dbCon = (DBConnect)session.getAttribute("dbCon"); if (dbCon != null) dbCon.manualLockRelease(); // envoie un commit }
Est ce que quelqu'un aurait l'amabilité de m'éclairer svp. Merci ^^
Partager