セッション・データは、DB2 表に収集して保管されます。セッション・パーシスタンスに DB2 を使用している場合は、 アプリケーション・サーバーに関連付けられている DB2 表を作成し、定義する必要があります。
セッション・データを収集するための DB2 表を作成するには、次を行います。
データベース表を作成する表スペースは、行レベルのロック (LOCKSIZE ROW) を使用して定義する必要があります。また、セッション中に表に保管するオブジェクトに対し十分なページ・サイズが必要となります。 以下に、行レベルのロックを指定し、バッファー・プール・ページ・サイズが 32K の表スペース定義の例を示します。
CREATE DATABASE database_name STOGROUP SYSDEFLT CCSID EBCDIC; CREATE TABLESPACE tablespace_name IN database_name USING STOGROUP group_name PRIQTY 512 SECQTY 1024 LOCKSIZE ROW BUFFERPOOL BP32K;
セッション・マネージャーは、この表スペース内に定義された DB2 表を使用して、セッション・データを処理します。 この表は、次の形式にする必要があります。
CREATE TABLE database_name.table_name ( ID VARCHAR(95) NOT NULL , PROPID VARCHAR(95) 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), SESSROW ROWID NOT NULL GENERATED ALWAYS ) IN database_name.tablespace_name;
この表の「ID」列、「PROPID」列、および「APPNAME」列に固有索引を作成する必要があります。 以下に、索引定義の例を示します。
CREATE UNIQUE INDEX database_name.index_name. database_name.table_name (ID ASC, PROPID ASC, APPNAME ASC);
ラージ・オブジェクト (LOB) 表スペースを定義し、またこの表スペース内に補助表を定義する必要もあります。 LOB 表スペース定義の例を以下に示します。
CREATE LOB TABLESPACE LOB_tablespace_name IN database_name BUFFERPOOL BP32K USING STOGROUP group_name PRIQTY 512 SECQTY 1024 LOCKSIZE LOB; CREATE AUX TABLE database_name.aux_table_name IN database_name.LOB_tablespace_name STORES database_name.table_name COLUMN LARGE;
この補助表には、索引を作成する必要があります。以下に、索引定義の例を示します。
CREATE INDEX database_name.aux_index_name ON database_name.aux_table_name;
GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;