![[z/OS]](../images/ngzos.gif)
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
- 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 :- 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.
- 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.
- 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;
- 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;
- Configurez la table DB2 pour la persistance des sessions.


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