관리자에게 다음 데이터 정의 언어(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)
)
웹 컨테이너 사용자 정의 특성 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)
)
주의: - 런타임 시에 세션 관리자는 소유 웹 애플리케이션이 배치된 Java™ Platform,
Enterprise Edition(Java EE)
서버를 사용하여 대상 테이블에 액세스합니다. 지속적 세션을 사용하도록 구성된 모든 웹 컨테이너에는
제목 데이터베이스 테이블에 대한 읽기 및 업데이트 액세스 둘 모두가 있어야 합니다.
- HTTP 세션 처리는 데이터베이스 교착 상태를 피하기 위해 CREATE
INDEX문을 사용하여 정의된 색인을 사용합니다. 예를 들어,
상대적으로 작은 테이블 크기가 데이터베이스에 정의된 일부 상황에서는 DB2는
이 색인을 사용하지 않기로 결정할 수도 있습니다. 색인이 사용되지 않으면
데이터베이스 교착 상태가 발생할 수 있습니다. 데이터베이스 교착 상태가 발생하면 색인에 필요한 공간을 계산하는 방법과
사용 중인 테이블의 크기를 이에 맞게 조정하는 방법에 대한 권장사항은 사용 중인 DB2의 버전의 DB2 관리 안내서를 참조하십시오.
- 세션 데이터베이스 테이블을 효율적으로 사용하고 여기에 액세스할 때 교착 상태를
피하기 위해서는 DB2를 조정해야 할 수도 있습니다.
DB2 관리자는
사용 중인 DB2의 버전 조정에 대한 특정 정보에 대해서는
DB2 관리 안내서를 참조해야 합니다.
- 런타임 중에 세션 관리자는 애플리케이션의 각 웹 모듈에 대해 데이터베이스에 항목을
작성할 수도 있습니다. 이 데이터 행은 세션 무효화 등과 같은 세션 관리 용도를 위해
내부적으로 사용됩니다. 이 항목에 대해서는 걱정하지 마십시오. 이는 무시할 수 있습니다.
- 세션 데이터베이스 테이블에 기본 키 제한조건이 필요한 경우에는 기본 키 제한조건은
ID, PROPID 및 APPNAME 열을 사용하여 정의되어야 합니다.