[z/OS]

Création d'une table DB2 pour la persistance des sessions

Les données de session sont collectées et stockées dans une table DB2. Si vous utilisez DB2 pour la persistance des sessions, vous devez créer et définir une table DB2 associée au serveur d'applications.

Pourquoi et quand exécuter cette tâche

Pour créer une table DB2 afin de collecter les données de session, procédez comme suit :

Procédure

  1. Demandez à l'administrateur DB2 de créer une table de base de données DB2 pour y stocker les données de session. (Pour plus d'informations sur la création de bases de données DB2, reportez-vous au Guide d'administration de DB2 UDB for OS/390 et au guide d'administration de z/OS V7.)

    L'espace table dans lequel est créée la table d'une base de données doit être défini avec un verrouillage de niveau ligne (LOCKSIZE ROW). Sa taille de page doit en outre être suffisamment importante pour les objets qui sont stockés dans la table au cours d'une session. L'exemple suivant correspond à la définition d'un espace table avec verrouillage de niveau ligne et une taille de page de pool de mémoire tampon de 32 Ko :

    CREATE DATABASE nom_base_de_données
      STOGROUP SYSDEFLT
      CCSID EBCDIC;
    
    CREATE TABLESPACE nom_espace_table IN nom_base_de_données
      USING STOGROUP nom_groupe
      PRIQTY 512
      SECQTY 1024
      LOCKSIZE ROW
      BUFFERPOOL BP32K;

    Le gestionnaire de session utilise la table DB2 définie dans cet espace table pour traiter les données de session. Cette table doit respecter le format suivant (à l'exception des longueurs VARCHAR, qui sont configurables) :

    CREATE TABLE nom_base_de_données.nom_table  (
      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 nom_base_de_données.nom_espace_table;
    Remarque : Les attributs de longueur spécifiés pour VARCHAR ne sont que des exemples. Ces valeurs doivent être assez élevées pour prendre en charge la longueur du nom d'application et du nom d'attribut de chaque session.

    Un index unique doit être créé dans les colonnes ID, PROPID et APPNAME de la table. Voici un exemple de la définition d'index :

    CREATE UNIQUE INDEX nom_base_de_données.nom_index ON 
          nom_base_de_données.nom_table
          (ID     ASC,
          PROPID  ASC,
          APPNAME ASC);
    Remarque :
    1. Lors de l'exécution, le gestionnaire de sessions accède à la table cible avec l'identité du serveur J2EE sur lequel l'application web propriétaire est déployée. Tout conteneur Web configuré pour utiliser des sessions persistantes doit pouvoir accéder en lecture et en écriture à la table de base de données sujet.
    2. Le traitement des sessions HTTP utilise l'index défini avec l'instruction CREATE INDEX afin d'éviter les blocages de base de données. Dans certaines situations, notamment lorsqu'une taille de table relativement petite est définie pour la base de données, DB2 peut décider de ne pas utiliser cet index. Dans ce cas, des blocages de base de données peuvent se produire. Si c'est le cas, voir les recommandations sur la façon de calculer l'espace nécessaire pour un index et ajuster la taille des tables utilisées en conséquence dans le guide d'administration DB2.
    3. Il peut s'avérer nécessaire d'ajuster DB2 afin d'utiliser avec efficacité la table de base de données des sessions et éviter les blocages lorsque vous y accédez. L'administrateur DB2 trouvera des informations spécifiques sur l'optimisation de la version de DB2 utilisée dans le guide d'administration de DB2 .

    Vous devez définir un espace table LOB et définir une table auxiliaire dans cet espace table. L'exemple suivant illustre la définition d'un espace table LOB :

    CREATE LOB TABLESPACE LOB_nom_espace_table IN nom_base_de_données
        BUFFERPOOL BP32K
        USING STOGROUP nom_groupe
        PRIQTY 512
        SECQTY 1024
        LOCKSIZE LOB;
    
    CREATE AUX TABLE nom_base_de_données.nom_table_aux
        IN nom_base_de_données.LOB_nom_espace_table
        STORES nom_base_de_données.nom_table
        COLUMN LARGE;

    Un index doit être créé pour cette table auxiliaire. Voici un exemple de la définition d'index :

    CREATE INDEX nom_base_de_données.nom_index_aux ON 
          nom_base_de_données.nom_table_aux;
  2. Demandez à votre administrateur DB2 d'accorder l'accès approprié à cette table DB2 à l'ID utilisateur z/OS utilisé pour l'exécution de la région du serveur. Par exemple, exécutez la commande suivante pour accorder à l'ID utilisateur z/OS CBASRU1, utilisé pour l'exécution de la région du serveur, l'accès à la table SESSIONS de la base de données SESSDB :
    GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;
  3. Configurez la table DB2 pour la persistance des sessions.

Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_db2tzos
Nom du fichier : tprs_db2tzos.html