Sie können eine Datenbanktabelle verwenden, um Sitzungsdaten zu erfassen und zu speichern.
Wenn Sie eine Datenbanktabelle für die Sitzungspersistenz verwenden, müssen Sie eine Datenbanktabelle erstellen und definieren, die dem Anwendungsserver zugeordnet wird.
Informationen zu diesem Vorgang
Wenn der Sitzungsmanager für die Datenbankpersistenz konfiguriert ist, erstellt er eine entsprechende Tabelle.
Wenn Sie die Grenzwerte für die Spaltengrößen für Ihre Website erhöhen möchten, können Sie die Tabelle extern erstellen.
Wenn die externe Tabelle als Zieltabelle in der Konfiguration des Sitzungsmanagers für die Datenbankpersistenz
angegeben wird, wird diese während des Start des Sitzungsmanagers verwendet.
In den meisten Fällen empfiehlt es sich, die Tabelle während des Starts vom Sitzungsmanager erstellen zu lassen.
Gehen Sie wie folgt vor, um eine Tabelle für die Erfassung von Sitzungsdaten zu erstellen:
- Lassen Sie von Ihrem Administrator eine Datenbanktabelle für die Speicherung der Sitzungsdaten mit einer der folgenden Datendefinitionssprachen (DDL,
Data Definition Language) erstellen: Für
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)
)
Für 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)
)
Wenn die angepasste Eigenschaft "UseOracleBLOB" des Web-Containers auf "true" gesetzt ist: 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)
)
Achtung: - Zur Laufzeit greift der Sitzungsmanager mit der ID des Java™ EE-Servers
(Java Platform,
Enterprise Edition), in dem die übergeordnete Webanwendung implementiert ist, auf die Zieltabelle zu.
Jeder Web-Container, der für die Verwendung persistenter Sitzungen konfiguriert ist, sollte Lese- und Updatezugriff auf
die Subjektdatenbanktabelle haben.
- Die HTTP-Sitzungsverarbeitung verwendet den mit der Anweisung CREATE INDEX definierten Index, um
gegenseitige Datenbanksperren zu vermeiden. In einigen Fällen, z. B. bei relativ kleiner definierter Tabellengröße für die Datenbank,
kann DB2 entscheiden, diesen Index nicht zu verwenden. Wenn der Index nicht verwendet wird,
sind gegenseitige Datenbanksperren möglich. Sollten Datenbanksperren auftreten, informieren Sie sich
im DB2-Administratorhandbuch zu der von Ihnen verwendeten DB2-Version, wie der für einen Index erforderliche Bereich
berechnet wird. Passen Sie dann die Tabellengröße entsprechend an.
- Möglicherweise müssen Sie DB2 optimieren, um die Sitzungsdatenbanktabelle effizient nutzen zu können und gegenseitige Sperren beim Zugriff auf die Tabelle
zu vermeiden. Ihr DB2-Administrator
sollte sich im DB2-Administratorhandbuch über die Optimierung der von Ihnen verwendeten DB2-Version
informieren.
- Zur Laufzeit kann der Sitzungsmanager für jedes Webmodul der Anwendung einen Eintrag in der Datenbank erstellen.
diese Datenezile wird intern für die Sitzungsverwaltung verwendet, z. B. für die Sitzungsaufhebung.
Sie können diesen Eintrag ignorieren.
- Wenn eine Integritätsbedingung über Primärschlüssel für die Sitzungsdatenbanktabelle erforderlich ist, muss die Integritätsbedingung
mit den Spalten ID, PROPID und APPNAME definiert werden.
Konfigurieren Sie eine Tabelle für die Sitzungspersistenz.