Puede utilizar una tabla de base de datos para recopilar y almacenar datos de sesión. Si utiliza una tabla de base de datos para la persistencia de sesiones, debe crear y definir
una tabla de base de datos que se asocie al servidor de aplicaciones.
Acerca de esta tarea
Siempre que se establece el gestor de sesiones para la persistencia de base de datos,
el gestor de sesiones crea una tabla para su uso. Si desea expandir los límites de tamaño
de columna para que sea más apropiada al sitio web, puede crear la tabla externamente. Si la tabla externa se especifica como la tabla de destino en la configuración de persistencia de base de datos de gestor de sesiones, se utiliza la tabla externa durante el arranque del gestor de sesiones.
En la mayoría de los casos es mejor dejar que el gestor de sesiones cree la tabla
durante el arranque.
Para crear una tabla para recopilar datos de sesión, realice
lo siguiente:
- Solicite al administrador que cree una tabla de base de datos para almacenar los
datos de sesión utilizando uno de los lenguajes de definición de datos (DDL) siguientes: Para DB2:
CREATE TABLE <SchemaName>.sessions (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS BIGINT,
CREATIONTIME BIGINT,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL VARCHAR(3122) FOR BIT DATA ,
MEDIUM LONG VARCHAR FOR BIT DATA ,
LARGE BLOB(2M)
)
Para Oracle:CREATE TABLE SESSIONS (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS INTEGER,
CREATIONTIME INTEGER,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL RAW(2000),
MEDIUM LONG RAW ,
LARGE RAW(1)
)
Si la propiedad personalizada de contenedor web UseOracleBLOB está establecida en
verdadera (true):
CREATE TABLE SESSIONS (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS INTEGER,
CREATIONTIME INTEGER,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL RAW(2000),
MEDIUM BLOB,
LARGE RAW(1)
)
Atención: - Durante la ejecución, el gestor de sesiones accede a la tabla de destino utilizando la identidad del
servidor Java™ Platform, Enterprise Edition (Java EE)
en el que se despliegue la aplicación web propietaria. Los contenedores web que se han configurado para utilizar
sesiones persistentes deben tener acceso de lectura y actualización para esa tabla de base de datos.
- El proceso de sesiones HTTP utiliza el índice definido mediante la sentencia
CREATE INDEX para evitar los puntos muertos de base de datos. En algunas situaciones, como cuando se define un tamaño de tabla relativamente pequeño
para la base de datos, DB2 puede decidir no utilizar ese índice. Cuando el índice no se utiliza, se producen puntos muertos de base de datos. Si se producen puntos muertos de base de datos, consulte la guía de administración de DB2
para la versión de DB2 que esté utilizando para encontrar recomendaciones sobre el cálculo
del espacio necesario para un índice y ajuste como corresponde
el tamaño de las tablas que está utilizando.
- Puede ser necesario ajustar DB2 para realizar un uso eficaz de la tabla de la base
de datos de sesiones y para evitar los puntos muertos al acceder a ella. El administrador de DB2 debe consultar en la Guía de administración de DB2
la información específica acerca del ajuste de la
versión de DB2 que esté utilizando.
- Durante el tiempo de ejecución, el gestor de sesiones puede crear una entrada en la base de datos para cada módulo web de la aplicación. Esta fila de datos se utiliza internamente para fines de gestión de sesiones, como en la invalidación de sesión.
No se preocupe de esta estrada. Se puede pasar por alto.
- Si se requiere una restricción de clave primaria para la tabla de base de datos de sesiones, la restricción de clave primaria debe definirse utilizando las columnas ID, PROPID y APPNAME.
Configurar una tabla para la persistencia de sesiones.