![[z/OS]](../images/ngzos.gif)
セッション・パーシスタンス用の DB2 表の作成
セッション・データは DB2® 表に収集および保管されます。セッション・パーシスタンスに DB2 を使用する場合は、アプリケーション・サーバーに関連付けられている DB2 表を作成し、定義する必要があります。
このタスクについて
セッション・データを収集するための DB2 表を作成するには、以下を実行します。
手順
- DB2 管理者により、セッション・データを保管するための DB2 データベース表を作成します。
(DB2 データベースの作成について詳しくは、「DB2 Universal Database Server (OS/390® および z/OS® 版) 管理ガイド V7」を参照してください。)
データベース表を作成する表スペースは、行レベルのロック (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 表を使用して、セッション・データを処理します。 この表のフォーマットは以下のようになっている必要があります (構成可能な VARCHAR の長さを除く)。
CREATE TABLE database_name.table_name ( 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 database_name.tablespace_name;
注: VARCHAR に指定された長さ属性は単なる例です。 これらの値は、アプリケーション名および各セッション属性名の長さを処理するのに十分な大きさでなければなりません。この表の「ID」列、「PROPID」列、および「APPNAME」列に固有索引を作成する必要があります。 以下に、索引定義の例を示します。
CREATE UNIQUE INDEX database_name.index_name ON database_name.table_name (ID ASC, PROPID ASC, APPNAME ASC);
注:- 実行時に、セッション・マネージャーは、所有する Web アプリケーションがデプロイされている J2EE サーバーの ID を使用して、ターゲット表にアクセスします。 持続セッションを使用するよう構成されたすべての Web コンテナーは、対象のデータベース表への読み取りアクセス権と更新アクセス権の両方を持っている必要があります。
- HTTP セッションの処理では、CREATE INDEX ステートメントを使用して定義された索引を使用し、データベースのデッドロックを回避します。場合によっては、例えば、データベースに対して比較的小さな表サイズが定義されている場合などは、DB2 ではこの索引が使用されないことがあります。索引が使用されない場合は、データベースのデッドロックが発生する可能性があります。このような状態が発生した場合は、ご使用の DB2 バージョンの DB2 管理ガイドに記載されている、索引に必要なスペースの推奨される計算方法を参照して、使用する表のサイズを適宜調整してください。
- セッション・データベース表を有効に利用して、アクセス時のデッドロックを回避するには、DB2 の調整が必要になる場合があります。 DB2 管理者は、使用する DB2 バージョンの調整に関する特定の情報について、「DB2 管理ガイド」を参照する必要があります。
ラージ・オブジェクト (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;
- DB2 管理者により、z/OS userID (サーバー領域はこの ID の下で実行される) に、
この DB2 表への適切なアクセス権限を付与します。
例えば、次のコマンドを実行して、サーバー領域を実行している z/OS userID CBASRU1 に、データベース SESSDB 内の表 SESSIONS へのアクセス権限を付与します。
GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;
- セッション・パーシスタンスの DB2 表を構成します。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_db2tzos
ファイル名:tprs_db2tzos.html