Propiedades personalizadas de gestión de sesiones
Puede especificar valores adicionales para la gestión de sesiones estableciendo las propiedades personalizadas.
- En la consola administrativa, pulse .
- En Propiedades adicionales seleccione Propiedades personalizadas.
- En la página Propiedades personalizadas, pulse Nueva.
- En la página de configuración, especifique la propiedad que desee configurar en el campo Nombre y el valor que desee establecer en el campo Valor.
- Pulse Aplicar o Aceptar.
- Pulse Guardar en la barra de tareas de la consola para guardar los cambios realizados en la configuración.
- Reinicie el servidor.
- AlwaysEncodeURL
- CheckSessionCookieNameOnEncodeURL
- checkSessionNewOnIsValidRequest
- CloneSeparator
- CloneSeparatorChange
- DebugSessionCrossover
- DelayAfterDuplicateIdException
- DelayInvalidationAlarmDuringServerStartup
- ForceSessionInvalidationMultiple
- HideSessionValues
- HttpSessionCloneId
HttpSessionEnableUnmanagedServerReplication
- HttpSessionIdLength
- HttpSessionIdReuse
- HttpSessionReaperPollInterval
- InvalidateOnUnauthorizedSessionRequestException
- NoAdditionalSessionInfo
- NoAffinitySwitchBack
- OptimizeCacheIdIncrements
- SecurityUserIgnoreCase
- Servlet21SessionCompatibility
- SessionIdentifierMaxLength
- SessionInvalidatorThreadPoolSize
- SessionRewriteIdentifier
- SessionTableName
- SessionTableSkipIndexCreation
- ThrowSecurityExceptionOnGetSessionFalse
- UseInvalidatedId
- UseOracleBLOB
- UsingApplicationSessionsAndInvalidateAll
- UsingCustomSchemaName
AlwaysEncodeURL
La especificación Servlet 2.5 especifica no codificar el URL en una llamada response.encodeURL si no es necesario. Para dar soporte a la compatibilidad con versiones anteriores cuando la codificación de URL está habilitada, establezca la propiedad personalizada AlwaysEncodeURL en true para llamar al método encodeURL. El URL siempre se codifica, aunque el navegador dé soporte a cookies. La propiedad se debe configurar en el nivel de contenedor web.
CheckSessionCookieNameOnEncodeURL
Utilice esta propiedad para comprobar si existe la cookie de sesión HTTP cuando se determina si el ID de sesión se ha de codificar en el URL. Esta propiedad se debe configurar en el nivel de contenedor web.
El valor predeterminado de esta propiedad es false.Cuando establece esta propiedad en true, permite que el gestor de sesiones compruebe si existe la cookie de sesión HTTP cuando se determina si el ID de sesión se ha de codificar en el URL.
checkSessionNewOnIsValidRequest
Utilice esta propiedad para especificar si el servidor puede manejar varias solicitudes de cliente simultáneas cuando se habilita HttpSessionIdReuse.Esta propiedad se debe configurar en el nivel de contenedor web.
De forma predeterminada, el descriptor de contexto maneja una solicitud de cliente en el momento en el que también se habilita la propiedad HttpSessionIdReuse. Establezca checkSessionNewOnIsValidRequest en false para permitir que el descriptor de contexto maneje múltiples solicitudes simultáneas de un cliente cuando HttpSessionIdReuse esté habilitada. Si HttpSessionIdReuse no está habilitada, esta propiedad no tiene efecto alguno.
Debe reiniciar el servidor para que entre en vigor el cambio de la configuración.
El valor predeterminado de esta propiedad es true.
CloneSeparator
Utilice esta propiedad para especificar un carácter diferente como separador de clones en las cookies de la sesión. El valor especificado para esta propiedad personalizada debe ser un solo carácter.
Esta propiedad se ha definido como una propiedad personalizada del contenedor web en la versión 6.1 pero ahora debe establecerse como una propiedad personalizada de gestión de sesiones en el nivel de contenedor web.

El hecho de que se pueda especificar cualquier carácter como valor de esta propiedad personalizada no implica que el carácter que especifique funcione correctamente. Este hecho no implica que IBM sea responsable de corregir los problemas que puedan surgir al utilizar un carácter alternativo.
bpracCloneSeparatorChange
Utilice esta propiedad para mantener la afinidad de sesiones. El ID de clon del servidor se adjunta al identificador de sesión separado por dos puntos. En algunos dispositivos WAP (Protocolo de aplicaciones inalámbricas) no se permiten los dos puntos. Establezca esta propiedad como true para cambiar el separador de clones a un signo más (+).Esta propiedad se debe configurar en el nivel de contenedor web.
DebugSessionCrossover
La propiedad personalizada DebugSessionCrossover habilita el código para realizar comprobaciones adicionales con el fin de verificar que sólo se accede o hace referencia a la sesión asociada con la solicitud. Los mensajes se registran, si se detectan discrepancias.
Establezca esta propiedad en true para habilitar la detección de cruces de datos de sesión.
Consulte el artículo, Problemas de sesión HTTP, para obtener información adicional.
DelayAfterDuplicateIdException
La propiedad personalizada DelayAfterDuplicateIdException se utiliza para especificar el tiempo, en milisegundos, que el gestor de sesiones debe esperar antes de intentar recuperar una sesión del servidor de programa de fondo después de que se produce un error SESN0196W. Esta propiedad se debe configurar en el nivel de contenedor web.
El valor predeterminado de esta propiedad es 500.
DelayInvalidationAlarmDuringServerStartup
Utilice esta propiedad para retrasar el inicio de la alarma de invalidación en el inicio del servidor de acuerdo con el número de segundos especificado.
El valor predeterminado de esta propiedad es 0.
ForceSessionInvalidationMultiple
La propiedad personalizada ForceSessionInvalidationMultiple indica si el gestor de sesiones debe esperar indefinidamente a que se complete una solicitud antes de intentar invalidar la sesión, o bien debe intentar invalidar una sesión una vez transcurrido el tiempo especificado. El valor predeterminado de esta propiedad es 3.
- Si especifica 0 (cero) para esta propiedad personalizada, el gestor de sesiones espera indefinidamente hasta que se completa una solicitud antes de intentar invalidar la sesión.
Si sus solicitudes normalmente no están vinculadas por un límite de tiempo de respuesta, especifique 0 para esta propiedad.
- Si especifica un entero positivo (como 1, 2 o 3) para esta propiedad personalizada, aunque no se sepa si se ha completado una sesión, el gestor de sesiones intenta invalidar la sesión si ha transcurrido el periodo de tiempo indicado desde el último acceso.
Este período de tiempo es el resultado de multiplicar el valor especificado
para esta propiedad y el valor especificado para la propiedad de tiempo de
espera de sesión. Por ejemplo, si especifica 2 minutos para la propiedad de
tiempo de espera de sesión y 2 para la propiedad
ForceSessionInvalidationMultiple, el gestor de sesiones intenta invalidar la
sesión tras 4 minutos.
Si desea invalidar las sesiones transcurrido un cierto intervalo de tiempo, especifique el correspondiente entero positivo para esta propiedad.
HideSessionValues
La propiedad personalizada HideSessionValues impide el registro de valores de atributo de sesión en los rastreos del gestor de sesiones.Esta propiedad se debe configurar en el nivel de contenedor web.
Las aplicaciones almacenan estos valores de atributo de sesión. El valor predeterminado es true.
HttpSessionCloneId
Utilice esta propiedad para cambiar el ID de clon del miembro del clúster. Dentro de un clúster, este ID debe ser exclusivo para mantener la afinidad de sesiones. Cuando se establece, este nombre sobrescribe el nombre predeterminado generado por WebSphere Application Server.Esta propiedad se debe configurar en el nivel de contenedor web.
Longitud de ID de clon predeterminado: 8 ó 9
Longitud de ID de clon predeterminado: 40
![[z/OS]](../images/ngzos.gif)
HttpSessionEnableUnmanagedServerReplication
Establezca esta propiedad personalizada en true si desea habilitar la migración tras error del sirviente haciendo una réplica de los datos de la sesión en un espacio de datos gestionado por controlador. El valor predeterminado es false.
HttpSessionIdLength
Utilice esta propiedad para configurar la longitud del identificador de sesiones. No utilice un valor demasiado pequeño; si utiliza un valor pequeño se reduce el número de combinaciones posibles, lo que aumenta el riesgo de averiguar el identificador de sesiones. En un clúster, todos los miembros del clúster se deben configurar con la misma longitud de ID. Rango permitido: de 8 a 128. Longitud predeterminada: 23.Esta propiedad se debe configurar en el nivel de contenedor web.
HttpSessionIdReuse
La propiedad personalizada HttpSessionIdReuse determina si el gestor de sesiones puede utilizar el ID de sesión enviado desde un navegador para conservar los datos de sesión entre aplicaciones web que se ejecutan en un entorno que no se ha configurado para la persistencia de la sesión. Esta propiedad se debe configurar en el nivel de contenedor web.
En un entorno de varias JVM que no está configurado para la permanencia de sesiones, al establecer esta propiedad en true se permite que el gestor de sesiones utilice la misma información de sesión para todas las solicitudes de usuario, incluso si las aplicaciones Web que gestionan estas solicitudes están gestionadas por JVM distintas. El valor predeterminado de esta propiedad es false. Defina esta propiedad en true si desea habilitar el gestor de sesiones para utilizar el ID de sesión enviado desde un navegador para conservar los datos de sesión entre aplicaciones web que se ejecutan en un entorno que no está configurado para la persistencia de sesión.
![[z/OS]](../images/ngzos.gif)
ExtendedMessage: BBOO0220E: SessionContext:createSession - call to
establishAffinity para el id número_ID ha fallado con rc 4
HttpSessionReaperPollInterval
Utilice esta propiedad para especificar, en segundos, un intervalo de activación para el proceso que elimina las sesiones no válidas. El valor especificado para esta propiedad altera temporalmente el valor de instalación predeterminado, que está entre 30 y 360 segundos, y garantiza que el proceso reaper se ejecute a un intervalo específico.
Si el intervalo máximo de inactividad es inferior a 2 minutos, el intervalo de sondeo del recopilador es normalmente entre 30 y 60 segundos.
Si el intervalo máximo de inactividad es superior a 2 minutos y hasta un máximo de 15 minutos, el intervalo de sondeo del recopilador es normalmente entre 60 y 90 segundos.
Si el intervalo máximo de inactividad es superior a 15 minutos y hasta un máximo de 30 minutos, el intervalo de sondeo del recopilador es normalmente entre 120 y 180 segundos.
Si el intervalo máximo de inactividad es superior a 30 minutos, el intervalo de sondeo del recopilador es normalmente entre 240 y 300 segundos.
Dado que el tiempo de espera predeterminado y el intervalo máximo de inactividad es de 30 minutos, el intervalo del recopilador suele estar entre 2 y 3 minutos.
Por ejemplo, es posible que desee utilizar esta propiedad si desea que si desea que las sesiones que han superado el tiempo de espera de la instalación se invaliden con más frecuencia que cada 2 a 3 minutos. Si se especifica HttpSessionReaperPollInterval=120 se garantiza que las sesiones se invaliden transcurridos 2 minutos de tiempo de espera.
El valor mínimo de esta propiedad es 30 segundos. Si se especifica un valor inferior al mínimo, se pasará por alto la propiedad especificada y se determinará y utilizará automáticamente un valor adecuado. El intervalo máximo de inactividad es el tiempo de espera de la sesión. El valor predeterminado se basa en el intervalo máximo de inactividad establecido en la gestión de sesiones.
InvalidateOnUnauthorizedSessionRequestException
Establezca esta propiedad en true si, en respuesta a una solicitud no autorizada, desea que el gestor de sesiones invalide una sesión en lugar de emitir un mensaje de error UnauthorizedSessionRequestException.
Cuando se invalida una sesión, el solicitante puede crear una sesión nueva, pero no podrá acceder a ningún dato previamente guardado. Esta invalidación permite que un único usuario siga procesando solicitudes después de un cierre de sesión mientras sigue protegiendo los datos de la sesión.
El valor predeterminado de esta propiedad es false.
NoAdditionalSessionInfo
Establezca esta propiedad en true para forzar la eliminación de la información que no es necesaria en los identificadores de sesión.Esta propiedad se debe configurar en el nivel de contenedor web.
NoAffinitySwitchBack
Establezca esta propiedad en true para mantener la afinidad con el nuevo miembro, aunque se vuelva a activar el original. Cuando falla el miembro de un clúster, sus solicitudes se direccionan a otro miembro del clúster, y las sesiones se activan en ese otro miembro. Por lo tanto, la afinidad de sesiones se mantiene en el nuevo miembro, y cuando se vuelve a activar el miembro del clúster que ha fallado, las solicitudes de las sesiones que se crearon en el miembro del clúster original se vuelven a direccionar a él. Los valores permitidos son true o false, siendo false el valor predeterminado. Esta propiedad se debe configurar en el nivel de contenedor web.
Se recomienda establecer esta propiedad como true cuando se configuren sesiones distribuidas con escritura basada en tiempo. Cuando se utiliza la duplicación de sesiones de memoria a memoria, establezca la propiedad personalizada HttpSessionCloneId para volver a utilizar el conmutador de afinidad. Tenga en cuenta que esta propiedad no tiene efecto en el comportamiento cuando no están habilitadas las sesiones distribuidas.
OptimizeCacheIdIncrements
Defina la propiedad personalizada OptimizeCacheIdIncrements en true para que el gestor de sesiones evalúe si la sesión en memoria de un módulo web es más antigua que la copia del almacén persistente. Establezca esta propiedad para resolver el ID de memoria caché, que está en aumento constante.
Si la gestión de sesiones HTTP está configurada para utilizar la persistencia de sesiones y la sesión de navegador del usuario se desplaza entre varias aplicaciones Web, es posible que vea más actividad en el almacén persistente ya que las sesiones en memoria para un módulo Web se renuevan desde el almacén persistente. Como resultado de esto, los ID de memoria caché aumentan continuamente y los atributos de sesiones en memoria se sobrescriben con los de la copia persistente. Establezca esta propiedad en true si desea impedir que los ID de memoria caché aumenten de forma continua.
Si la configuración es un clúster, asegúrese de que las horas de los sistemas de cada miembro del clúster sean tan idénticas como sea posible.
SecurityUserIgnoreCase
Establezca esta propiedad en true si desea que la identidad de seguridad de sesión y la identidad de seguridad de cliente se consideren coincidentes aunque se especifiquen con distintas mayúsculas y minúsculas.
Cuando un usuario configura la integración de la seguridad de sesión, el gestor de sesiones compara la identidad de seguridad del propietario de la sesión con la identidad de seguridad de la solicitud del cliente. Puesto que los criterios de coincidencia son sensibles a mayúsculas y minúsculas, si estas dos identidades no coinciden exactamente, se devuelve una UnauthorizedSessionRequestException al cliente.
Si, en su caso, se dan situaciones en las que la identidad de seguridad de sesión y la identidad de seguridad de cliente se consideran coincidentes aunque difieran en las mayúsculas y minúsculas, añada la propiedad personalizada SecurityUserIgnoreCase a los valores de configuración del contenedor Web y establezca la propiedad en true. Cuando esta propiedad se establece en true, no se genera ninguna UnauthorizedSessionRequestException si la identidad de seguridad de sesión y la identidad de seguridad de cliente son idénticos salvo en las mayúsculas y minúsculas. Por ejemplo, cuando esta propiedad se establece en true, la identidad de seguridad de sesión USER1 coincide con las identidades de seguridad de cliente User1 y user1.
Servlet21SessionCompatibility
Establezca esta propiedad personalizada en true para habilitar el comportamiento de la sesión global. En Servlet 2.2 y posteriores, las sesiones tienen el ámbito a nivel de módulo web. El valor predeterminado es false.

SessionIdentifierMaxLength
Utilice este valor para establecer la longitud máxima que puede alcanzar un identificador de sesiones. Esta propiedad se debe configurar en el nivel de contenedor web.
En un clúster, debido a la migración tras error cuando una solicitud pasa al nuevo miembro del clúster, la gestión de sesiones adjunta un nuevo ID de clon al ID de clon existente. En un clúster grande, si por alguna razón los servidores fallan con más frecuencia, es posible que la longitud del identificador de sesiones sea mayor de la esperada, lo que deja menos espacio para el URL. Esta propiedad permite averiguar la condición y llevar a cabo las acciones necesarias para la migración tras error de los servidores. Cuando se especifica esta propiedad, la gestión se registra cuando se alcanza la longitud máxima especificada. Valor permitido: entero.
SessionInvalidatorThreadPoolSize
Define el tamaño máximo de la agrupación de hebras para las hebras que generan sesiones no válidas cuando superan el tiempo de espera. Estas hebras son responsables de notificar a otros servidores si las sesiones se distribuyen y de limpiar las referencias locales a ellas. Una mayor frecuencia de sesiones que superan el intervalo de tiempo de espera así como un mayor número de sesiones debido a un elevado volumen de tráfico genera la necesidad de un mayor número de estas hebras.
El valor predeterminado es 50. El valor mínimo es 20 y el valor máximo es 100.
SessionRewriteIdentifier
Utilice esta propiedad para cambiar la clave utilizada con la reescritura de URL. El valor predeterminado es jsessionid.
SessionTableName
Utilice esta propiedad personalizada para establecer el nombre de tabla de la base de datos. Valor permitido: serie. El valor predeterminado es SESSIONS.
Es posible que algunas aplicaciones se basen en el método ejbCreate(...) para que el bean de entidad se cree en la base de datos. Para tal requisito, si se establece la propiedad de la JVM com.ibm.websphere.ejbcontainer.allowEarlyInsert en true se altera temporalmente el comportamiento predeterminado.
SessionTableSkipIndexCreation
Utilice esta propiedad para inhabilitar la creación de índices durante el arranque del servidor.
Esta propiedad personalizada sólo se debe utilizar si desea crear manualmente sus propios índices de base de datos para la persistencia de sesiones. No obstante, se recomienda que permita que el gestor de sesiones cree índices de base de datos.
Para habilitar esta propiedad, vaya a la página de la consola administrativa de las propiedades personalizadas, escriba el nombre de la propiedad SessionTableSkipIndexCreation y establezca su valor en true. Antes de habilitar esta propiedad, asegúrese de que exista el índice correcto en su base de datos de sesión.
ThrowSecurityExceptionOnGetSessionFalse
Establezca esta propiedad personalizada en false para que la gestión de sesiones devuelva un valor de sesión nulo, en lugar de una UnauthorizedSessionrequestException. El valor predeterminado es true.
UseInvalidatedId
Establezca esta propiedad personalizada en true para reutilizar el ID de entrada si la sesión con ese ID se ha invalidado recientemente. Se trata de una optimización de rendimiento porque impide la comprobación del almacén persistente. El valor predeterminado es true.
UseOracleBLOB
La propiedad personalizada UseOracleBLOB crea la tabla de base de datos de sesión HTTP mediante el tipo de datos BLOB (Binary Large Object) para la columna central. Esta propiedad incrementa el rendimiento de sesiones persistentes cuando se utilizan bases de datos Oracle. Debido a una restricción de Oracle, el soporte de BLOB requiere el uso del controlador de base de datos OCI (Oracle Call Interface) en el caso de más de 4000 bytes de datos. Asimismo, debe asegurarse de que se cree una nueva tabla de sesiones antes de que el servidor se vuelva a reiniciar mediante la eliminación de la tabla de sesiones antigua o mediante la modificación de la definición de origen de datos para que haga referencia a una base de datos que no contenga una tabla de sesiones.
Nombre | Valor |
---|---|
UseOracleBLOB | true |
UsingApplicationSessionsAndInvalidateAll
Cuando se llama al método invalidateAllSet, no se comprueban todos los objetos IBMApplicationSessions. Si utiliza el objeto IBMApplicationSessions y la llamada invalidateAll, utilice el par de nombre y valor siguiente:
Nombre | Valor |
---|---|
UsingApplicationSessionsAndInvalidateAll | true |
UsingCustomSchemaName
Utilice esta propiedad para asegurarse de que el gestor de sesiones detecta correctamente la tabla de sesiones en los siguientes arranques del servidor.
Establezca esta propiedad personalizada en true si está utilizando DB2 para la persistencia de sesiones y la propiedad customSchema no se ha establecido en el valor predeterminado en el controlador JDBC de DB2.
El valor predeterminado es false.