[z/OS]

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

  1. 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:
    1. 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.
    2. 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.
    3. 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
  2. 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;
  3. Konfigurieren Sie die DB2-Tabelle für Sitzungspersistenz.

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_db2tzos
Dateiname:tprs_db2tzos.html