httpSessionDatabase - HTTP 会话数据库 (httpSessionDatabase)

控制将 HTTP 会话持久保存到数据库的方式。

NameTypeDefaultDescription
dataSourceRefstring会话管理器应该用来持久保存 HTTP 会话数据的数据源的标识。
tableNamestringsessions数据库表名称。
useMultiRowSchema布尔型false启用时,会将每个会话数据属性置于数据库中的单独一行上,从而允许为每个会话存储更大量的数据。当会话属性很大并且需要对这些会话属性进行少量更改时,此配置可产生较好的性能。禁用时,对于每个会话,会将所有会话数据属性都置于同一行中。
skipIndexCreation布尔型false将此属性设置为“true”以禁用在服务器启动时创建索引。仅当您要手动创建自己的数据库索引以获得会话持久性时,才应该使用此定制属性。但是,建议您让会话管理器创建数据库索引。在启用此属性之前,请确保会话数据库上存在正确的索引。
writeFrequency
  • MANUAL_UPDATE
  • TIME_BASED_WRITE
  • END_OF_SERVLET_SERVICE
END_OF_SERVLET_SERVICE指定将会话数据写入持久存储的时间。缺省情况下,会在 servlet 完成执行之后将会话数据写入持久存储。更改此值可改进某些环境中的性能。
MANUAL_UPDATE
需要 IBMSession 对象上通过编程进行的同步,以将会话数据写入持久存储。
TIME_BASED_WRITE
根据指定的写时间间隔值,会将会话数据写入持久存储。
END_OF_SERVLET_SERVICE
在 servlet 完成执行之后,会将会话数据写入持久存储。
writeInterval具有秒精度的时间段2m将会话数据写入持久存储之前应该经过的秒数。缺省值为 120 秒。仅当启用基于时间的写频率时,才会使用此值。. 指定后跟时间单位的正整数,时间单位可以是小时 (h)、分钟 (m) 或秒 (s)。例如,以 30s 的形式指定 30 秒。可将多个值包括在单个条目中。例如,1m30s 相当于 90 秒。
writeContents
  • ONLY_UPDATED_ATTRIBUTES
  • ALL_SESSION_ATTRIBUTES
ONLY_UPDATED_ATTRIBUTES指定应该写入持久存储的会话数据量。缺省情况下,仅会写入已更新的属性,但是可改为写入全部属性(无论它们是否已更改)。
ONLY_UPDATED_ATTRIBUTES
仅将已更新的属性写入持久存储。
ALL_SESSION_ATTRIBUTES
将全部属性写入持久存储。
scheduleInvalidation布尔型false启用此选项,以减少使 HTTP 会话保持活动状态所需的数据库更新数。请指定一天内应用程序服务器中的活动最少的那两个小时。禁用此选项时,失效器进程会每隔几分钟运行一次,以除去失效的 HTTP 会话。
scheduleInvalidationFirstHour整形0指示其间会从持久存储中清除失效会话的第一个小时。请以 0 与 23 之间的整数形式指定此值。仅当启用了调度失效时,此值才有效。
scheduleInvalidationSecondHour整形0指示其间会从持久存储中清除失效会话的第二个小时。请以 0 与 23 之间的整数形式指定此值。仅当启用了调度失效时,此值才有效。
noAffinitySwitchBack布尔型false即使备份一个原始成员之后,将此属性设置为“true”以维护与新成员的亲缘关系。当集群成员失败时,其请求路由到另一集群成员,且会话将在该另一成员中激活。因而,会维护与新成员的会话亲缘关系,并且当备份集群成员失败时,会将那些对原始集群成员中创建的会话的请求路由回给该集群成员。允许的值为 true 或 false,缺省值为 false。已配置分布式会话(具有基于时间的写频率)时,请将此属性设置为 true。请注意,未启用分布式会话时,此属性对该行为没有任何影响。
useInvalidatedId布尔型true将此属性设置为“true”,以复用入局标识(如果最近已使具有该标识的会话失效)。由于这会阻止检查持久存储,因此这是对性能的优化。
onlyCheckInCacheDuringPreInvoke布尔型false值为 true 时指示,仅当请求获取会话时,才应该更新该会话的最近一次访问时间。值为 false 时指示,每次请求时,都应该更新会话的最近一次访问时间。更改此值可改进某些环境中的性能。
optimizeCacheIdIncrements布尔型true如果用户的浏览器会话正在多个 Web 应用程序之间往返移动,那么由于会从持久存储刷新 Web 模块的内存中会话,您可能会看到额外的持久存储活动。因此,高速缓存标识不断增大,并且持久性副本的会话属性会覆盖内存中会话属性。如果希望阻止高速缓存标识不断增大,请将此属性设置为 true。值为 true 时指示,会话管理器应该评估 Web 模块的内存中会话是否早于持久存储中副本的会话。如果配置是集群,请确保每个集群成员的系统时间尽可能完全相同。
db2RowSize
  • 32KB
  • 4KB
  • 16KB
  • 8KB
4KB为会话表配置的表空间页大小(如果正在使用 DB2 数据库)。增大此值可改进某些环境中的数据库性能。
32KB
使用表空间页大小 32 KB。必须额外创建 DB2 缓冲池和表空间,并且指定 32KB 作为这两者的页大小。还必须指定您已创建的表空间的名称。
4KB
使用缺省表空间页大小 4 KB。不需要创建 DB2 缓冲池或表空间,并且不需要指定表空间名称。
16KB
使用表空间页大小 16 KB。必须额外创建 DB2 缓冲池和表空间,并且指定 16KB 作为这两者的页大小。还必须指定您已创建的表空间的名称。
8KB
使用表空间页大小 8 KB。必须额外创建 DB2 缓冲池和表空间,并且指定 8KB 作为这两者的页大小。还必须指定您已创建的表空间的名称。
tableSpaceNamestring要用于会话表的表空间。仅当 DB2 行大小超过 4KB 时,才需要此值。
usingCustomSchemaName布尔型false如果您要将 DB2 用于会话持久性并且在数据源中设置 currentSchema 属性,请将此属性设置为“true”。
useOracleBlob布尔型false将此属性设置为“true”,以针对介质列创建使用二进制大对象 (BLOB) 数据类型的数据库表。当使用 Oracle 数据库时,此值会改进持久会话的性能。由于 Oracle 限制,BLOB 支持要求将 Oracle Call Interface (OCI) 数据库驱动程序用于大于 4000 字节的数据。您也必须确保通过执行下列操作来在重新启动服务器之前创建新的会话表:删除旧的会话表或将数据源定义更改为引用不包含会话表的数据库。