创建会话持久性表
可使用数据库表来收集和存储会话数据。如果您对会话持久性使用数据库表,那么必须创建并定义与应用程序服务器相关联的数据库表。
关于此任务
每当为数据库持久性设置会话管理器时,会话管理器将创建一个供数据库持久性使用的表。如果要扩展列大小限制以使其更适合于 Web 站点,那么可以在外部创建此表。如果在会话管理器数据库持久性配置中指定外部表作为目标表,那么在会话管理器启动期间,将使用这个外部表。在大多数情况下,最好是让会话管理器在启动期间创建此表。
要创建用于收集会话数据的表,请执行以下操作:
过程
- 让您的管理员使用下列其中一种数据定义语言 (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) 服务器的标识来访问目标表。任何配置为使用持久会话的 Web 容器都应该具有对主题数据库表的读和更新访问权。
- HTTP 会话处理过程使用用 CREATE INDEX 语句定义的索引,以避免数据库死锁。在某些情况下,例如在为数据库定义了相对较小的表大小时,DB2 可能会决定不使用此索引。当不使用索引时,会发生数据库死锁。如果发生数据库死锁,请参阅您使用的 DB2 版本的《DB2 管理指南》,以获取有关计算索引所需空间的建议并相应地调整所使用的表大小。
- 您可能需要调整 DB2,以便在访问它时能够高效地使用会话数据库表并避免死锁。DB2 管理员应该参阅《DB2 管理指南》,以便了解有关调整所使用的 DB2 版本的特定信息。
- 在运行时期间,会话管理器可能会在数据库中为应用程序的每个 Web 模块都创建一个条目。这个数据行在内部用于会话管理,例如,用于使会话无效。请不要干预此条目。可以忽略此条目。
- 如果会话数据库表需要主键约束,那么必须使用 ID、PROPID 和 APPNAME 列定义主键约束。
配置会话持久性表。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tprs_table_creation
文件名:tprs_table_creation.html