Serialización del acceso a datos de sesión
La API del servlet admite el acceso simultáneo a sesiones en instancias de servidor dadas. El producto WebSphere Application Server proporciona una opción para impedir el acceso simultáneo a una sesión en una instancia de servidor dada para que no se produzca la modificación simultánea de una sesión en una instancia de servidor dada.
Acerca de esta tarea
Impedir el acceso simultáneo a una sesión se consigue sincronizando las solicitudes basadas en la sesión. Cuando esta característica está activa, se obtiene una sesión para la petición antes de invocar el servlet y las peticiones se sincronizan bloqueando la sesión para el tiempo de iniciación del servlet. Obsérvese que la sincronización se basa en la copia de la sesión en memoria. Por lo tanto, esta característica no puede serializar peticiones a través de los servidores en base a la sesión cuando una afinidad de sesión no se realiza satisfactoriamente.
También puede utilizar el acceso de serialización a la característica de datos de sesión para sincronizar objetos de sesión en los servlets o las JSP (JavaServer Pages). Las aplicaciones no pueden sincronizar los objetos de sesión dentro de los servlets o las JavaServer Pages porque se puede producir un punto muerto con el gestor de sesiones. El punto muerto se produce porque el gestor de sesiones no espera que se utilice más de un mecanismo de bloqueo. Puede asegurar que sólo una petición pueda acceder a la sesión a la vez mediante la utilización de la opción de configuración Permitir el acceso serializado.
Utilice esta característica sólo cuando la modificación simultánea de los mismos datos de sesión es posible y no es deseable para la aplicación. Esta característica tiene la carga adicional de serializar las peticiones basadas en sesiones.
Para sincronizar el acceso de sesión, haga lo siguiente:
Procedimiento
- Seleccione el nivel de Gestión de sesiones en el que desea serializar el acceso a la sesión.
- En Acceso a sesiones serializado, pulse Permitir el acceso serie.
- En el recuadro Tiempo máximo de espera, indique el tiempo, en milisegundos, que debe esperar el servlet en una sesión antes de continuar la ejecución. El valor por omisión son 120000 milisegundos o dos minutos.
- Seleccione Permitir el acceso en tiempo de espera si desea que el servlet obtenga acceso a la sesión y continúe la ejecución normal aún cuando la sesión siga bloqueada por otro servlet. Si no selecciona este recuadro, la ejecución del servlet terminará anormalmente cuando se exceda el tiempo de espera de solicitud de sesión.
- Pulse Aplicar.
- Pulse Guardar.