[z/OS]

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

  1. 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:
    1. 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.
    2. 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:
    3. 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
  2. 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;
  3. Configure la tabla DB2 para la persistencia de sesiones.

Icon that indicates the type of topic Task topic



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