管理者に依頼し、以下のいずれかのデータ定義言語 (DDL) を使用して、
セッション・データ保管用のデータベース表を作成してください。 DB2® の場合CREATE TABLE <SchemaName>.sessions (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS BIGINT,
CREATIONTIME BIGINT,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL VARCHAR(3122) FOR BIT DATA ,
MEDIUM LONG VARCHAR FOR BIT DATA ,
LARGE BLOB(2M)
)
Oracle の場合
CREATE TABLE SESSIONS (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS INTEGER,
CREATIONTIME INTEGER,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL RAW(2000),
MEDIUM LONG RAW ,
LARGE RAW(1)
)
Web コンテナーのカスタム・プロパティー UseOracleBLOB が true に設定されている場合
CREATE TABLE SESSIONS (
ID VARCHAR(128) NOT NULL ,
PROPID VARCHAR(128) NOT NULL ,
APPNAME VARCHAR(128) NOT NULL,
LISTENERCNT SMALLINT ,
LASTACCESS INTEGER,
CREATIONTIME INTEGER,
MAXINACTIVETIME INTEGER ,
USERNAME VARCHAR(256) ,
SMALL RAW(2000),
MEDIUM BLOB,
LARGE RAW(1)
)
重要: - 実行時に、セッション・マネージャーは、所有する Web
アプリケーションがデプロイされている Java™ Platform, Enterprise Edition (Java EE) サーバーの ID を使用して、ターゲット表にアクセスします。
持続セッションを使用するよう構成されたすべての Web コンテナーは、対象のデータベース表への読み取りアクセス権と更新アクセス権の両方を持っている必要があります。
- HTTP セッションの処理では、CREATE INDEX ステートメントを使用して定義された索引を使用し、データベースのデッドロックを回避します。場合によっては、例えば、データベースに対して比較的小さな表サイズが定義されている場合などは、DB2 ではこの索引が使用されないことがあります。索引が使用されない場合は、データベースのデッドロックが発生する可能性があります。データベースのデッドロックが発生する場合は、ご使用の DB2 バージョンの「DB2 管理ガイド」に記載されている、索引に必要なスペースの推奨される計算方法を参照し、使用する表のサイズを適宜調整してください。
- セッション・データベース表を有効に利用して、アクセス時のデッドロックを回避するには、DB2 の調整が必要になる場合があります。
DB2 管理者は、使用する DB2 バージョンの調整に関する特定の情報について、「DB2 管理ガイド」を参照する必要があります。
- 実行時にセッション・マネージャーが、アプリケーションの各 Web モジュールに対するエントリーを、データベース内に作成する場合があります。このデータ行は、セッション中の無効化など、セッション管理の目的で内部的に使用されます。このエントリーについて心配する必要はありません。無視することができます。
- セッション・データベース表で 1 次キー制約が必要な場合は、ID、PROPID、および APPNAME の各列を使用して、1 次キー制約を定義する必要があります。