Taille de base du pool de sessions en mémoire
La taille du pool de session en mémoire de base dépend de la configuration du support de session
- Lorsque les sessions sont stockées en mémoire, l'accès aux sessions est optimisé et peut atteindre le nombre de sessions défini dans la taille du pool.
- Lorsque les sessions sont distribuées (ce qui signifie qu'elles sont stockées dans une base de données ou dans une autre instance de WebSphere Application Server, la taille de la cache est également indiquée par ce paramètre, ainsi que le nombre de mises à jour avec les heures des derniers accès qui sont enregistrées avec le mode manuel d'actualisation.
Dans le cas de sessions distribuées, lorsque le cache des sessions a atteint sa taille maximale et qu'une nouvelle session est demandée, l'utilitaire de gestion de session supprime la session la plus ancienne du cache afin de laisser place à la nouvelle.
La valeur optimale de cette propriété est déterminée à la fois par la capacité mémoire du système et par les caractéristiques d'utilisation du site e-business.
L'augmentation de la taille de base du pool de sessions en mémoire peut nécessiter l'augmentation de la taille de segment des processus Java™ pour les instances WebSphere Application Server correspondantes.
Dépassement autorisé pour les sessions non réparties
Par défaut, le nombre de sessions conservées en mémoire est spécifié par la taille de base du pool de sessions en mémoire. Si vous ne souhaitez pas imposer une limite au nombre de sessions conservées en mémoire et que vous voulez autoriser le dépassement, affectez au paramètre correspondant la valeur true ("vrai").
Autoriser un nombre illimité de sessions peut éventuellement épuiser la mémoire du système et peut même exposer celui-ci à un risque de sabotage. Une personne mal intentionnée pourrait écrire un programme accédant continuellement à votre site et créant à chaque fois une session en ignorant volontairement les cookies ou les URL codées, sans jamais utiliser la même session d'une requête HTTP à la suivante.
Lorsque le dépassement de capacité n'est pas autorisé, l'utilitaire de gestion de session renvoie malgré tout une session sur appel de la méthode getSession(true) de HttpServletRequest lorsque la limite de mémoire a été atteinte ; il s'agit alors d'une session non valide qui n'est pas sauvegardée. Toute tentative d'utilisation de la session générera une exception java.lang.IllegalStateException.
L'extension WebSphere Application Server de la classe HttpSession, com.ibm.websphere.servlet.session.IBMSession, fournit une méthode isOverflow qui renvoie la valeur true si la session n'est pas valide. Une application peut tester cet état et réagir en conséquence.