[z/OS]

セッション・パーシスタンス用の DB2 表の作成

セッション・データは DB2® 表に収集および保管されます。セッション・パーシスタンスに DB2 を使用する場合は、アプリケーション・サーバーに関連付けられている DB2 表を作成し、定義する必要があります。

このタスクについて

セッション・データを収集するための DB2 表を作成するには、以下を実行します。

手順

  1. 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);
    注:
    1. 実行時に、セッション・マネージャーは、所有する Web アプリケーションがデプロイされている J2EE サーバーの ID を使用して、ターゲット表にアクセスします。 持続セッションを使用するよう構成されたすべての Web コンテナーは、対象のデータベース表への読み取りアクセス権と更新アクセス権の両方を持っている必要があります。
    2. HTTP セッションの処理では、CREATE INDEX ステートメントを使用して定義された索引を使用し、データベースのデッドロックを回避します。場合によっては、例えば、データベースに対して比較的小さな表サイズが定義されている場合などは、DB2 ではこの索引が使用されないことがあります。索引が使用されない場合は、データベースのデッドロックが発生する可能性があります。このような状態が発生した場合は、ご使用の DB2 バージョンの DB2 管理ガイドに記載されている、索引に必要なスペースの推奨される計算方法を参照して、使用する表のサイズを適宜調整してください。
    3. セッション・データベース表を有効に利用して、アクセス時のデッドロックを回避するには、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;
  2. DB2 管理者により、z/OS userID (サーバー領域はこの ID の下で実行される) に、 この DB2 表への適切なアクセス権限を付与します。 例えば、次のコマンドを実行して、サーバー領域を実行している z/OS userID CBASRU1 に、データベース SESSDB 内の表 SESSIONS へのアクセス権限を付与します。
    GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;
  3. セッション・パーシスタンスの DB2 表を構成します。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_db2tzos
ファイル名:tprs_db2tzos.html