Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Glassfish et Payara Java Discussion :

Connaitre le nombre de sessions actives


Sujet :

Glassfish et Payara Java

  1. #1
    Membre actif
    Connaitre le nombre de sessions actives
    Bonjour,

    J'aimerais savoir à n'importe quel moment, le nombre de sessions actives de mon appli web.
    Pour cela, j'ai essayé d'activer le monitoring du conteneur web via "Configurations -> server-config -> Monitoring -> Set Monitoring level to HIGH for Web Container" mais même en enregistrant, le modification n'est pas prise en compte.

    Est-ce que je fais quelque chose de faux ou manque-t-il quelque chose ?

    Merci pour votre aide

  2. #2
    Membre actif
    up

  3. #3
    Modérateur

    Passe par un HttpSessionListener, tu as un exemple ici...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre actif
    Salut,

    Merci pour ta réponse.
    J'ai mis le listener en place mais je ne vois pas comment récupérer la valeur dans un fichier xhtml. Ce n''est pas un managedbean, du coup il y a un moyen de la récupérer dans une page du site ?

  5. #5
    Membre expérimenté
    Salut,

    Tu as juste à écrire un bean qui va récupérer la valeur pour l'afficher sur ta page..

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    <h:outputText value="#{monBean.nbSession}"/>


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String getNbSession()
    {
      return String.valueOf( SessionCounterListener.getTotalActiveSession() );
    }


    cdt.

  6. #6
    Membre actif
    Et oui c'est tout con en fait

    Merci les gars pour votre aide

  7. #7
    Membre actif
    Bon il y a un truc qui me surprend ....
    Si je lance 2 navigateurs (Chrome et Firefox), j'ai bien 2 sessions actives.

    Lorsque je ferme un navigateur, j'ai toujours 2 sessions actives. Je ne devrais pas en avoir qu'une ?
    Il me semblait que lorsque l'on quitte un navigateur, la session est détruite, d'autant plus que je fais un destroy lorsque je clique sur "déconnecter" ....

  8. #8
    Expert éminent sénior
    si tu fais un session.destroy() tu la détruit. Mais si juste après ton code tente d'accéder à la session, ça en recrée un nouvelle.

    Fermer un navigateur ne détruit pas une session, tomcat n'a aucun moyen de savoir que le navigateur a été fermé.
    David Delbecq Java developer chez HMS Industrial Networks AB. &#12288;&#12288;&#12288;LinkedIn | Google+

  9. #9
    Membre actif
    D'accord, merci pour cette précision

  10. #10
    Modérateur

    C'est plutôt session.invalidate() pour détruire la session

    Pour le problème, la session est établie entre le navigateur et le serveur, donc, avec 2 navigateurs différents, on a 2 sessions.
    Un problème lié à ceci est qu'on peut ouvrir 2 fenêtres du même navigateur en "croyant" avoir 2 sessions côté serveur alors qu'en fait, on n'en a qu'une...
    Quand on ferme une fenêtre d'un navigateur mais qu'une autre fenêtre du navigateur reste ouverte (Firefox et IE en tout cas), on ne perd même pas la session (sauf avec session.invalidate())
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Membre actif
    Merci :-)