Configuración de la persistencia de sesiones para el perfil Liberty
Cuando los datos de sesión deban mantenerse entre reinicios del servidor o una anomalía imprevista del servidor, puede configurar el perfil Liberty para la persistencia de los datos de sesión en una base de datos. Esta configuración permite que varios servidores compartan la misma sesión de datos y que se puedan recuperar los datos de la sesión en caso de migración tras error.
Acerca de esta tarea
Para configurar uno o más servidores en el perfil Liberty para la persistencia de sesiones de datos en una base de datos, siga estos pasos.
Procedimiento
- Defina una configuración de gestión de sesiones compartida que se pueda reutilizar entre todos los servidores. Debe completar los pasos siguientes, como un requisito mínimo:
- Habilitar la característica sessionDatabase-1.0.
- Definir un origen de datos:
<dataSource id="SessionDS" ... />
- Haga referencia al origen de datos desde la configuración de base de datos de la sesión.
<httpSessionDatabase id="SessionDB" dataSourceRef="SessionDS" ... />
- Haga referencia a la ubicación del almacenamiento persistente desde la configuración de gestión de sesiones.
<httpSession storageRef="SessionDB" ... />
Nota: No son oblitorios el atributo storageRef del elemento httpSession ni el atributo id del elemento httpSessionDatabase. Si está habilitada la característica sessionDatabase-1.0 y el elemento httpSessionDatabase hace referencia a un origen de datos válido, se habilita la persistencia de sesiones aun cuando no esté establecido el atributo storageRef.Consulte Elementos de configuración en el archivo server.xml para obtener detalles acerca de los elementos httpSession y httpSessionDatabase.
Por ejemplo, puede crear un archivo denominado ${shared.config.dir}/httpSessionPersistence.xml como se indica a continuación:<server description="Demonstrates HTTP Session Persistence Configuration"> <featureManager> <feature>sessionDatabase-1.0</feature> <feature>servlet-3.0</feature> </featureManager> <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="${httpPort}"> <tcpOptions soReuseAddr="true" /> </httpEndpoint> <fileset id="DerbyFiles" includes="*.jar" dir="${shared.resource.dir}/derby/client"/> <library id="DerbyLib" filesetRef="DerbyFiles"/> <jdbcDriver id="DerbyDriver" libraryRef="DerbyLib"/> <dataSource id="SessionDS" jdbcDriverRef="DerbyDriver" jndiName="jdbc/sessions"> <properties.derby.client user="user1" password="password1" databaseName="${shared.resource.dir}/databases/SessionDB" createDatabase="create" /> </dataSource> <httpSessionDatabase id="SessionDB" dataSourceRef="SessionDS"/> <httpSession storageRef="SessionDB" cloneId="${cloneId}"/> <application id="test" name="test" type="ear" location="${shared.app.dir}/test.ear"/> </server>
Nota: Cuando se configuren varios servidores para la persistencia de sesiones de datos en la misma base de datos, los servidores deben compartir la misma configuración de gestión de sesiones. No se da soporte a ninguna otra configuración. Por ejemplo, un servidor no puede utilizar un esquema de varias filas cuando otro servidor utiliza un esquema de una sola fila.Procedimientos recomendados: Si la afinidad de sesiones es importante para su aplicación, defina de forma explícita un ID de clon exclusivo para cada servidor. De este modo, no tendrá que depender del ID de clon predeterminado que genera el servidor, y puede estar seguro de que el valor del ID de clon no cambiará nunca. - Incluya la configuración de gestión de sesiones compartidas en todos los servidores.
Por ejemplo, cree dos archivos server.xml para instancias de servidor denominados s1 y s2, como se indica a continuación :
- ${wlp.user.dir}/servers/s1/server.xml
- ${wlp.user.dir}/servers/s2/server.xml
<server description="Example Server"> <include location="${shared.config.dir}/httpSessionPersistence.xml"/> </server>
Consulte Utilización de elementos include en los archivos de configuración.
- Especifique variables exclusivas en el archivo bootstrap.properties de cada servidor.
- ${wlp.user.dir}/servers/s1/bootstrap.properties
httpPort=9081 cloneId=s1
- ${wlp.user.dir}/servers/s2/bootstrap.properties
httpPort=9082 cloneId=s2
- ${wlp.user.dir}/servers/s1/bootstrap.properties
- Cree una tabla para la persistencia de sesiones antes de iniciar los servidores.
- Si desea cambiar el tamaño de fila, el nombre de tabla o el nombre de espacio de tablas predeterminados, consulte la sección Elementos de configuración en el archivo server.xml para obtener más detalles sobre el elemento httpSessionDatabase.
No es necesaria ninguna acción adicional si el servidor está instalado en uno de los sistemas operativos distribuidos. El servidor crea automáticamente la tabla.
- Si el servidor está utilizando DB2 para la persistencia de sesiones, puede aumentar el tamaño de página para optimizar el rendimiento de la escritura de grandes cantidades de datos en la base de datos.
- Sincronice los relojes del sistema de todas las máquinas que alojan los servidores de Liberty. Si no están sincronizados los relojes del sistema, puede producirse una invalidación antes de tiempo
- Opcional: Si es necesario, integre las sesiones HTTP y security en el perfil Liberty. De forma predeterminada, después de crear una sesión y acceder a la misma desde un recurso protegido con la seguridad habilitada, sólo el propietario original de la sesión podrá acceder a ella. La seguridad de sesiones (integración de seguridad) está habilitada de forma predeterminada.
- Opcional: Si es necesario, Instale y configure el plug-in de servidor web para direccionar las solicitudes a cada uno de los servidores que ha configurado. La afinidad de sesiones solo se mantiene si su configuración de plug-in especifica los ID de clon que coinciden con los ID de clon definidos en la configuración del servidor.
Tema principal: Administración manual del perfil Liberty
Conceptos relacionados:
Tareas relacionadas:
Referencia relacionada:

Términos y condiciones para centros de información | Comentarios

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_admin_session_persistence
Nombre de archivo:twlp_admin_session_persistence.html