Invalidación de planificación
En lugar de confiar en el temporizador de invalidación periódica que se ejecuta en un intervalo basado en el parámetro de tiempo de espera de la sesión, puede establecer horas específicas para que el recurso de gestión de sesiones explore las sesiones invalidadas en entornos distribuidos.
Cuando esta característica se utiliza con sesiones distribuidas tiene los siguientes beneficios:
- Puede programar la exploración de las sesiones invalidadas en las horas en las que el servidor de aplicaciones tiene poca actividad, evitando así la contención entre las exploraciones de invalidación de la base de datos u otra instancia de WebSphere Application Server y las operaciones de lectura y grabación para atender las solicitudes de sesión de HTTP.
- Podrían haber muchas menos operaciones de grabación externas al ejecutar la modalidad de grabación Fin del método de servicio, porque no es necesario grabar la última hora de acceso de la sesión en cada solicitud de HTTP. (Las opciones Actualización manual y Grabación basada en tiempo ya minimizan la grabación de la última hora de acceso).
- El gestor de sesiones invalida las sesiones sólo durante el tiempo planificado, por lo tanto, las sesiones están disponibles en una aplicación, si se solicitan antes de que se invalide la sesión. A continuación se muestran algunas consideraciones sobre la utilización:
- Con la invalidación de planificación configurada, no se cumplen estrictamente los tiempos de espera de HttpSession. En su lugar, todo el proceso de invalidación se produce a las horas de invalidación configurada.
- El proceso de HttpSessionBindingListener se maneja a las horas de invalidación configuradas a menos que se llame explícitamente al método HttpSession.invalidate.
- El método HttpSession.invalidate invalida inmediatamente la sesión de la memoria caché de la sesión y del almacenamiento externo.
- La hebra de invalidación periódica aún se ejecuta con la invalidación planificada. Si la hora actual del día no coincide con la de las horas configuradas, las sesiones que hayan excedido el intervalo de invalidación se eliminarán de memoria caché, pero no del almacenamiento externo. Otra petición para esa sesión producirá la devolución de esa sesión de nuevo a memoria caché.
- Si se ejecuta la hebra de invalidación periódica durante una de las horas configuradas, se invalidarán todas las sesiones que hayan excedido el intervalo de invalidación mediante eliminación tanto de la memoria caché como del almacenamiento externo.
- La hebra de invalidación periódica se puede ejecutar más de una vez durante una hora y no se ejecuta necesariamente al principio de la hora.
- Si especifica el intervalo de la hebra de invalidación periódica con la propiedad personalizada HttpSessionReaperPollInterval, no especifique un valor de más de 3600 segundos (1 hora) para asegurarse de que el proceso de invalidación se produce al menos una vez durante cada hora.