![[z/OS]](../images/ngzos.gif)
Creación de tablas DB2 para persistencia de sesiones
Los datos de sesión se recopilan y almacenan en una tabla de DB2. Si utiliza DB2 para la persistencia de sesiones, debe crear y definir una tabla DB2 que se asocie al servidor de aplicaciones.
Acerca de esta tarea
Para crear una tabla de DB2 para la recopilación de datos de sesión, siga los pasos que se detallan a continuación:
Procedimiento
- Solicite al administrador de DB2 que cree una tabla de base de datos DB2 en la que almacenar los datos de sesión. (Para obtener más información sobre la creación de bases de datos DB2, consulte la publicación DB2 UDB for OS/390 and z/OS V7
Administration Guide.)
El espacio de tabla en el que se crea la tabla de la base de datos debe definirse con bloqueo de nivel de fila (LOCKSIZE ROW). También debe tener un tamaño de página que sea lo bastante grande para los objetos almacenados en la tabla durante una sesión. A continuación, se ofrece un ejemplo de una definición de espacio de tabla con bloqueo de nivel de fila especificado y un tamaño de página de agrupación de almacenamiento intermedio de 32K:
CREATE DATABASE nombre_base_de_datos STOGROUP SYSDEFLT CCSID EBCDIC; CREATE TABLESPACE nombre_espacio_de_tabla IN nombre_base_de_datos USING STOGROUP nombre_grupo PRIQTY 512 SECQTY 1024 LOCKSIZE ROW BUFFERPOOL BP32K;
El gestor de sesiones utiliza la tabla de DB2 definida en este espacio de tabla para procesar los datos de sesión. Esta tabla debe tener el formato siguiente (con la excepción de las longitudes de VARCHAR, que son configurables):
CREATE TABLE nombre_base_de_datos.nombre_tabla ( ID VARCHAR(128) NOT NULL , PROPID VARCHAR(128) NOT NULL , APPNAME VARCHAR(64) , LISTENERCNT SMALLINT , LASTACCESS DECIMAL(19,0), CREATIONTIME DECIMAL(19,0), MAXINACTIVETIME INTEGER , USERNAME VARCHAR(256) , SMALL VARCHAR(3122) FOR BIT DATA , MEDIUM VARCHAR(28869) FOR BIT DATA , LARGE BLOB(2097152), ) IN nombre_base_de_datos.nombre_espacio_de_tabla;
Nota: Los atributos de longitud especificados para VARCHAR son sólo ejemplos. Estos valores deben ser lo suficientemente grandes para manejar la longitud del nombre de la aplicación y cada nombre de atributo de sesión.Se debe crear un índice único en las columnas ID, PROPID y APPNAME de esta tabla. El siguiente es un ejemplo de la definición del índice:
CREATE UNIQUE INDEX nombre_base_datos.nombre_índice ON nombre_base_de_datos.nombre_tabla (ID ASC, PROPID ASC, APPNAME ASC);
Nota:- En tiempo de ejecución, el gestor de sesiones accede a la tabla de destino utilizando la identidad del servidor J2EE en el cual está desplegada 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, pueden producirse puntos muertos de base de datos. Si se da esta situación, consulte la guía de administración de DB2 para la versión de DB2 que esté utilizando donde encontrará recomendaciones sobre el cálculo del espacio necesario para un índice, y ajuste de forma pertinente el tamaño de las tablas que está utilizando:
- Puede ser necesario ajustar DB2 para conseguir 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 buscar en la guía de administración de DB2 información específica sobre el ajuste de la versión de DB2 que está utilizando.
Debe definir un espacio de tabla de objetos de gran tamaño (LOB) y también definir una tabla auxiliar dentro de dicho espacio de tabla. El siguiente es un ejemplo de la definición del espacio de tabla LOB:
CREATE LOB TABLESPACE LOB_nombre_espacio_de_tabla IN nombre_base_de_datos BUFFERPOOL BP32K USING STOGROUP nombre_grupo PRIQTY 512 SECQTY 1024 LOCKSIZE LOB; CREATE AUX TABLE nombre_base_de_datos.nombre_tabla_aux IN nombre_base_de_datos.LOB_nombre_espacio_de_tabla STORES nombre_base_de_datos.nombre_tabla COLUMN LARGE;
Debe crearse un índice para esta tabla auxiliar. El siguiente es un ejemplo de la definición del índice:
CREATE INDEX nombre_base_de_datos.nombre_índice_aux ON nombre_base_de_datos.nombre_tabla_aux
- Haga que el Administrador de DB2 otorge al ID de usuario de z/OS, con el que se ejecuta la región del servidor, el acceso adecuado a esta tabla de DB2.
Por ejemplo, emita el mandato siguiente para otorgar el acceso a la tabla SESSIONS
contenida en la base de datos SESSDB al ID de usuario de z/OS CBASRU1, bajo el que se
está ejecutando la región de servidor:
GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;
- Configure la tabla DB2 para la persistencia de sesiones.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_db2tzos
File name: tprs_db2tzos.html