Tamaño básico de la agrupación de sesiones en memoria
El valor del tamaño de la agrupación de sesiones en memoria base depende de la configuración de soporte de la sesión.
- Con las sesiones en memoria, se optimiza el acceso a las mismas según el número de sesiones.
- Con las sesiones distribuidas (cuando se almacenan en una base de datos o en otra instancia de WebSphere Application Server), el tamaño de la agrupación también especifica el tamaño de la memoria caché y el número de actualizaciones desde la última vez que se accedió a ella que se han guardado en modalidad manual.
Para las sesiones distribuidas, cuando la memoria caché de la sesión ha alcanzado su tamaño máximo y se solicita una nueva sesión, el recurso de Gestión de sesiones elimina de la memoria caché la sesión que hace más tiempo que se ha utilizado para crear espacio para la nueva sesión.
Los requisitos de memoria generales del sistema de hardware y el uso de las características del sitio de e-business determinarán el valor más adecuado.
Tenga en cuenta que el incremento del tamaño básico de la agrupación de sesiones en memoria puede necesitar el aumento de los tamaños de los almacenamientos dinámicos de los procesos Java™ para los WebSphere Application Servers correspondientes.
Desbordamiento en las sesiones no distribuidas
De forma predeterminada, el número de sesiones que se mantienen en la memoria lo especifica el tamaño básico de agrupaciones de sesiones en memoria. Si no desea establecer un límite para el número de sesiones que han de mantenerse en la memoria y desea permitir el desbordamiento, establezca el desbordamiento en true.
Si se permite que haya un número ilimitado de sesiones podría dejarse al sistema sin memoria e incluso dejarlo desprotegido en caso de que se intentara dañarlo intencionadamente. Alguien podría escribir un programa dañino que accediera continuamente a su sitio y que creara sesiones, pero pasando por alto las cookies o los URL codificados, y sin utilizar nunca la misma sesión de una petición HTTP para la siguiente.
Cuando el desbordamiento está inhabilitado, el recurso de Gestión de sesiones sigue devolviendo una sesión con el método getSession(true) de HttpServletRequest cuando se alcanza el límite de la memoria, y es una sesión no válida que no se guarda. Cualquier intento de utilizar los resultados de la sesión genera una excepción java.lang.IllegalStateException.
Con la extensión de WebSphere Application Server para HttpSession, com.ibm.websphere.servlet.session.IBMSession, un método isOverflow devuelve el valor true si la sesión es una sesión no válida de este tipo. Una aplicación puede comprobar este estado y responder según convenga.