![[z/OS]](../images/ngzos.gif)
DB2-Tabelle für Sitzungspersistenz erstellen
Sitzungsdaten werden in einer DB2-Tabelle erfasst und gespeichert. Wenn Sie DB2 für Sitzungspersistenz verwenden, müssen Sie eine DB2-Tabelle erstellen und definieren, die dem Anwendungsserver zugeordnet wird.
Informationen zu diesem Vorgang
Gehen Sie wie folgt vor, um eine DB2-Tabelle für die Erfassung von Sitzungsdaten zu erstellen:
Vorgehensweise
- Lassen Sie Ihren DB2-Administrator eine DB2-Datenbanktabelle für das Speichern Ihrer Sitzungsdaten erstellen. (Weitere Informationen
zum Erstellen von DB2-Datenbanken finden Sie in der Veröffentlichung
DB2 UDB for OS/390 and z/OS V7 Administration Guide.)
Der Tabellenbereich, in dem die Datenbanktabelle erstellt wird, muss mit Sperren auf Zeilenebene (LOCKSIZE ROW) definiert werden. Die Seitengröße des Bereichs sollte für die Objekte, die während einer Sitzung in der Tabelle gespeichert werden, angemessen sein. Das folgende Beispiel zeigt die Definition eines Tabellenbereichs mit angegebener Sperre auf Zeilenebene und einer Pufferpoolseitengröße von 32 K:
CREATE DATABASE Datenbankname STOGROUP SYSDEFLT CCSID EBCDIC; CREATE TABLESPACE Name_des_Tabellenbereichs IN Datenbankname USING STOGROUP Gruppenname PRIQTY 512 SECQTY 1024 LOCKSIZE ROW BUFFERPOOL BP32K;
Der Sitzungsmanager verwendet die in diesem Tabellenbereich definierte DB2-Tabelle für die Verarbeitung der Sitzungsdaten. Diese Tabelle muss folgendes Format haben (mit Ausnahme der VARCHAR-Längen, die konfigurierbar sind):
CREATE TABLE Datenbankname.Tabellenname ( 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 Datenbankname.Name_des_Tabellenbereichs;
Anmerkung: Die für VARCHAR angegebenen Längenattribute sind lediglich Beispiele. Diese Werte sollten groß genug sein, um die Länge des Anwendungsnamens und jedes Sitzungsattributnamens abzudecken.Für die Spalten ID, PROPID und APPNAME dieser Tabelle muss ein eindeutiger Index erstellt werden. Das folgende Beispiel zeigt eine Indexdefinition:
CREATE UNIQUE INDEX Datenbankname.Indexname ON Datenbankname.Tabellenname (ID ASC, PROPID ASC, APPNAME ASC);
Anmerkung:- In der Laufzeit greift der Sitzungsmanager auf die Zieltabelle zu. Dazu verwendet er die ID des J2EE-Servers, in dem die Eignerwebanwendung implementiert ist. 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. Sollte es zu einer solchen Sperre kommen, 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.
Sie müssen einen LOB-Tabellenbereich (Large Object) definieren und innerhalb dieses Tabellenbereichs eine Zusatztabelle. Das folgende Beispiel zeigt die Definition eines LOB-Tabellenbereichs:
CREATE LOB TABLESPACE LOB_Name_des_Tabellenbereichs IN Datenbankname BUFFERPOOL BP32K USING STOGROUP Gruppenname PRIQTY 512 SECQTY 1024 LOCKSIZE LOB; CREATE AUX TABLE Datenbankname.Name_der_Zusatztabelle IN Datenbankname.LOB_Name_des_Tabellenbereichs STORES Datenbankname.Tabellenname COLUMN LARGE;
Für diese Zusatztabelle muss ein Index erstellt werden. Das folgende Beispiel zeigt eine Indexdefinition:
CREATE INDEX Datenbankname.Name_des_Zusatzindex ON Datenbankname.Name_der_Zusatztabelle
- Ihr DB2-Administrator muss der z/OS-Benutzer-ID, unter der der Serverbereich ausgeführt wird, die
erforderlichen Zugriffsrechte für diese DB2-Tabelle einräumen. Setzen Sie beispielsweise
den folgenden Befehl ab, um der z/OS-Benutzer-ID CBASRU1, unter der der Serverbereich ausgeführt wird,
den Zugriff auf die Tabelle SESSIONS in der Datenbank
SESSDB zu ermöglichen:
GRANT ALL ON SESSDB.SESSIONS TO CBASRU1;
- Konfigurieren Sie die DB2-Tabelle für Sitzungspersistenz.


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