会话管理定制属性
可以通过设置定制属性来指定会话管理的其他设置。
- 在管理控制台中,单击 。
- 在其他属性下面,选择定制属性。
- 在“定制属性”页面上,单击新建。
- 在设置页面上的“名称”字段中输入要配置的属性,并在“值”字段中输入要设置的值。
- 单击应用或确定。
- 单击控制台任务栏上的保存以保存配置更改。
- 重新启动服务器。
- AlwaysEncodeURL
- CheckSessionCookieNameOnEncodeURL
- checkSessionNewOnIsValidRequest
- CloneSeparator
- CloneSeparatorChange
- DebugSessionCrossover
- DelayAfterDuplicateIdException
- DelayInvalidationAlarmDuringServerStartup
- ForceSessionInvalidationMultiple
- HideSessionValues
- HttpSessionCloneId
HttpSessionEnableUnmanagedServerReplication
- HttpSessionIdLength
- HttpSessionIdReuse
- HttpSessionReaperPollInterval
- InvalidateOnUnauthorizedSessionRequestException
- NoAdditionalSessionInfo
- NoAffinitySwitchBack
- OptimizeCacheIdIncrements
- SecurityUserIgnoreCase
- Servlet21SessionCompatibility
- SessionIdentifierMaxLength
- SessionInvalidatorThreadPoolSize
- SessionRewriteIdentifier
- SessionTableName
- SessionTableSkipIndexCreation
- ThrowSecurityExceptionOnGetSessionFalse
- UseInvalidatedId
- UseOracleBLOB
- UsingApplicationSessionsAndInvalidateAll
- UsingCustomSchemaName
AlwaysEncodeURL
Servlet 2.5 规范指定在必要时才对 response.encodeURL 调用上的 URL 进行编码。要在启用 URL 编码时支持与较低版本的兼容性,请将 AlwaysEncodeURL 定制属性设置为 true 以调用 encodeURL 方法。即使浏览器支持 cookie,URL 也始终进行编码。必须在 Web 容器级别配置此属性。
CheckSessionCookieNameOnEncodeURL
使用此属性在确定是否需要在 URL 中对会话标识进行编码时检查 HTTP 会话 cookie 是否存在。必须在 Web 容器级别配置此属性。
此属性的缺省设置是 False。将此属性设置为 true 时,启用会话管理器,以在确定是否需要在 URL 中对会话标识进行编码时检查 HTTP 会话 cookie 是否存在。
checkSessionNewOnIsValidRequest
使用此属性可以指定服务器是否可以在启用 HttpSessionIdReuse 的情况下同时处理多个客户机请求。必须在 Web 容器级别配置此属性。
缺省情况下,虽然已启用属性 HttpSessionIdReuse,但会话管理器每次只处理一个客户机请求。将 checkSessionNewOnIsValidRequest 设置为 false 可以允许会话管理器在启用 HttpSessionIdReuse 的情况下同时处理多个来自客户机的请求。如果未启用 HttpSessionIdReuse,那么此属性不起作用。
您必须重新启动服务器,以使配置更改生效。
此属性的缺省值为 true。
CloneSeparator
使用此属性可以将其他字符指定为会话 Cookie 中的克隆分隔符。对此定制属性指定的值必须是单个字符。
在 V6.1 中,此属性设置为 Web 容器定制属性,但现在必须在 Web 容器级别将其设置为会话管理定制属性。

可以将任何字符指定为此定制属性的值并不表示您指定的字符将正常工作。这也不表示 IBM 有责任修正使用备用字符时可能产生的任何问题。
bpracCloneSeparatorChange
使用此属性维护会话亲缘关系。服务器的克隆标识被附加到用冒号分隔的会话标识中。在一些无线应用协议 (WAP) 设备中,不允许有冒号。将此属性设置为 true 可以将克隆分隔符更改为加号 (+)。必须在 Web 容器级别配置此属性。
DebugSessionCrossover
DebugSessionCrossover 定制属性使代码可以执行其他检查,以验证是否仅访问或引用了与请求关联的会话。如果检测到任何差异,那么记录消息。
将此属性设置为 true 可以启用会话数据交叉检测。
请参阅HTTP 会话问题一文,以了解其他信息。
DelayAfterDuplicateIdException
DelayAfterDuplicateIdException 定制属性用于指定会话管理器在发生 SESN0196W 错误后尝试从后端服务器中检索会话前应等待的时间长度(以毫秒为单位)。必须在 Web 容器级别配置此属性。
此属性的缺省值为 500。
DelayInvalidationAlarmDuringServerStartup
使用此属性可以将服务器启动时无效警报的启动延迟指定秒数。
此属性的缺省值为 0。
ForceSessionInvalidationMultiple
ForceSessionInvalidationMultiple 定制属性用于指示会话管理器应在尝试使会话失效之前无限期地等待请求完成,还是应在经过指定的时间限制后尝试使会话失效。此属性的缺省值为 3。
- 如果指定 0(零)作为此定制属性的值,那么会话管理器会无限期地等待,直到要求完成为止,然后再尝试使会话失效。
如果请求通常不受限于响应时间限制,请指定 0 作为此属性的值。
- 如果为此定制属性指定正整数,如 1、2 或 3,那么自上次访问发生以来已经过指定的时间段时,即使并不清楚会话是否已完成,会话管理器也将尝试使该会话失效。此时间段是将此属性中指定的值与“会话超时”属性中指定的值相乘得到的结果。例如,如果指定 2 分钟作为“会话超时”属性的值,且指定 2 作为 ForceSessionInvalidationMultiple 属性的值,那么会话管理器会在 4 分钟之后尝试使会话失效。
如果要在耗用一定时间之后使会话失效,请指定相应的正整数作为此属性的值。
HideSessionValues
HideSessionValues 定制属性用于阻止记录会话管理器跟踪中的会话属性值。必须在 Web 容器级别配置此属性。
应用程序将存储这些会话属性值。缺省值为 true。
HttpSessionCloneId
使用此属性更改集群成员的克隆标识。在集群中,此标识必须唯一才能维持会话亲缘关系。当设置时,此名称将覆盖由 WebSphere Application Server 生成的缺省名。必须在 Web 容器级别配置此属性。
缺省克隆标识长度:8 或 9
缺省克隆标识长度:40
![[z/OS]](../images/ngzos.gif)
HttpSessionEnableUnmanagedServerReplication
如果要通过将会话数据复制到控制器管理的数据空间中来启用服务方故障转移,请将此定制属性设置为 true。缺省值是 false。
HttpSessionIdLength
使用此属性配置会话标识长度。不要使用非常低的值;使用低值将导致减少可能的组合数,因而增加了猜测会话标识的风险。在集群中,所有集群成员应当用相同的标识长度来进行配置。允许的范围:8 到 128。缺省长度:23。必须在 Web 容器级别配置此属性。
HttpSessionIdReuse
定制属性 HttpSessionIdReuse 用于确定会话管理器是否可以使用从浏览器发送的会话标识来保存 Web 应用程序(在未针对会话持久性进行配置的环境中运行)之间的会话数据。必须在 Web 容器级别配置此属性。
在未针对会话持久性进行配置的多 JVM 环境中,将此属性设置为 true 可以使会话管理器对用户的所有请求使用相同的会话信息,即使处理这些请求的 Web 应用程序由不同的 JVM 管理也是如此。此属性的缺省值为 false。如果要使会话管理器可以使用从浏览器发送的会话标识来保存 Web 应用程序(在未针对会话持久性进行配置的环境中运行)之间的会话数据,请将此属性设置为 true。
![[z/OS]](../images/ngzos.gif)
ExtendedMessage: BBOO0220E: SessionContext:createSession - call to
establishAffinity for id id_number failed with rc 4
HttpSessionReaperPollInterval
使用此属性可以指定用于移除无效会话的进程的唤醒时间间隔(以秒为单位)。对此属性指定的值将覆盖介于 30 秒到 360 秒之间的缺省安装值,并确保收集者进程以特定时间间隔运行。
如果最长不活动时间间隔少于 2 分钟,那么收集者轮询时间间隔通常介于 30 到 60 秒之间。
如果最长不活动时间间隔超过 2 分钟并且最大为 15 分钟,那么收集者轮询时间间隔通常介于 60 到 90 秒之间。
如果最长不活动时间间隔超过 15 分钟并且最大为 30 分钟,那么收集者轮询时间间隔通常介于 120 到 180 秒之间。
如果最长不活动时间间隔超过 30 分钟,那么收集者轮询时间间隔通常介于 240 到 300 秒之间。
由于缺省超时和最长不活动时间间隔是 30 分钟,因此收集者时间间隔通常介于 2 和 3 分钟之间。
例如,如果要使安装超时会话失效的频率超过 2 到 3 分钟,那么您可能要使用此属性。指定 HttpSessionReaperPollInterval=120 可以确保会话在 2 分钟的超时时间内失效。
此属性的最小值为 30 秒。如果输入的值小于最小值,那么将忽略指定的属性并自动确定和使用适当的值。最长不活动时间间隔为会话超时。缺省值基于在会话管理中设置的最长不活动时间间隔。
InvalidateOnUnauthorizedSessionRequestException
如果您希望会话管理器使会话失效(而不是发出 UnauthorizedSessionRequestException 错误消息),以对未经授权的请求作出响应,请将此属性设置为 true。
如果会话失效,那么请求者可以创建新会话,但无权访问先前保存的任何会话数据。此失效操作允许单个用户在注销后继续处理请求,但仍然保护会话数据。
此属性的缺省值为 false。
NoAdditionalSessionInfo
将此属性设置为 true 以强制移除会话标识中不需要的信息。必须在 Web 容器级别配置此属性。
NoAffinitySwitchBack
将此属性设置为 true 可以在备份一个原始成员后维护到新成员的亲缘关系。当集群成员失败时,其请求路由到不同的集群成员,且会话将在那个成员中激活。因而,维护到新成员的会话亲缘关系并当备份集群成员失败时,那些对原始集群成员中创建的会话的请求将路由回给它。所允许的值为 true 或 false,缺省值为 false。必须在 Web 容器级别配置此属性。
如果已使用基于时间的写功能对分布式会话进行配置,请将此属性设置为 true。使用内存到内存会话复制时,请设置定制属性 HttpSessionCloneId 以使用亲缘关系切换回。请注意,如果未启用分布式会话,那么此属性对行为没有任何影响
OptimizeCacheIdIncrements
将 OptimizeCacheIdIncrements 定制属性设置为 true 可以使会话管理器评估 Web 模块的内存中会话是否早于持久存储中的副本。设置此属性将解决不断增长的高速缓存标识。
如果 HTTP 会话管理配置为使用会话持久性,而用户的浏览器会话在多个 Web 应用程序之间来回切换,那么您可能会看到额外的持久存储活动,因为 Web 模块的内存中会话从持久存储中刷新。因此,高速缓存标识不断增长,且内存会话属性由这些持久副本的属性覆盖。如果要阻止高速缓存标识不断增大,请将此属性设置为 true。
如果配置是集群,请尽可能确保每个集群成员的系统时间都完全相同。
SecurityUserIgnoreCase
如果要将会话安全性身份和客户机安全性身份视为匹配(即使它们大小写不同),请将此属性设置为 true。
当用户配置会话安全性集成时,会话管理器会将会话所有者的安全性身份与客户机请求的安全性身份进行比较。由于匹配条件区分大小写,因此如果两个身份不完全匹配,那么会将 UnauthorizedSessionRequestException 发送回客户机。
如果要将会话安全性身份和客户机安全性身份视为匹配(即使它们大小写不同),请将 SecurityUserIgnoreCase 定制属性添加到 Web 容器配置设置中,并将属性设置为 true。当此属性设置为 true 时,如果会话安全性身份与客户机安全性身份除了大小写之外完全相同,那么不会显示 UnauthorizedSessionRequestException。例如,当此属性设置为 true,那么会话安全性身份 USER1 与客户机安全性身份 User1 和 user1 相匹配。
Servlet21SessionCompatibility
将此定制属性设置为 true 以启用全局会话行为。在 Servlet 2.2 及更高版本中,会话的范围在 Web 模块级别确定。缺省值为 false。

SessionIdentifierMaxLength
使用此值设置会话标识可增加的最大长度。必须在 Web 容器级别配置此属性。
在集群中,由于请求转至新集群成员时发生故障转移,会话管理会将新的克隆标识追加到现有克隆标识中。在大集群中,如果出于某些原因服务器更频繁地失败,那么有可能是会话标识长度大于期望的长度,它减少了 URL 的空间。这个属性有助于找出条件,并采用适当的操作来处理服务器的故障转移。当指定此属性时,消息将在达到指定的最大长度时进行记录。允许的值:整数。
SessionInvalidatorThreadPoolSize
定义线程的线程池最大大小,这些线程将获得已超时的无效会话。如果会话是分布式会话,那么这些线程将负责通知其他服务器并清除对会话的任何本地引用。超时时间间隔越短,会话超时就越频繁,并且流量越大,会话数也越多,这两个因素都会导致需要更多数目的这些线程。
缺省值为 50。最小值为 20,最大值为 100。
SessionRewriteIdentifier
使用此属性更改重写 URL 时使用的密钥。缺省密钥为 jsessionid。
SessionTableName
使用此定制属性设置数据库表名。允许的值:字符串。缺省值为 SESSIONS。
某些应用程序可能利用方法 ejbCreate(...) 已在数据库中创建了实体 Bean。对于此类需求,将 JVM 属性 com.ibm.websphere.ejbcontainer.allowEarlyInsert 设置为 true 可以覆盖缺省行为。
SessionTableSkipIndexCreation
使用此属性可以禁止在服务器启动时创建索引。
仅当您要手动创建自己的数据库索引以实现会话持久性时,才应该使用此定制属性。但是,建议您让会话管理器创建数据库索引。
要启用此属性,请转至会话管理定制属性管理控制台页面,输入 SessionTableSkipIndexCreation 属性名并将其值设置为 true。启用此属性之前,请确保会话数据库上确实存在正确的索引。
ThrowSecurityExceptionOnGetSessionFalse
将此定制属性设置为 false 以允许会话管理返回空会话值,而不是 UnauthorizedSessionrequestException。 缺省值是 true。
UseInvalidatedId
如果具有入局标识的会话最近已失效,那么将此定制属性设置为 true 以复用该标识。这是对性能的优化,因为它可以免于检查持久存储。缺省值为 true。
UseOracleBLOB
UseOracleBLOB 定制属性使用介质列的二进制大对象 (BLOB) 数据类型创建 HTTP 会话数据库表。使用了 Oracle 数据库时,此属性将提高持久会话的性能。由于存在 Oracle 限制,如果数据超过 4000 字节,那么 BLOB 支持将要求使用 Oracle 调用接口 (OCI) 数据库驱动程序。您也必须确保通过执行以下操作重新启动服务器前已创建了一个新的会话表:删除旧的会话表或将数据源定义更改为引用不包含会话表的数据库。
名称 | 值 |
---|---|
UseOracleBLOB | true |
UsingApplicationSessionsAndInvalidateAll
调用 invalidateAllSet 方法时,不会检查所有的 IBMApplicationSessions 对象。如果同时使用 IBMApplicationSessions 对象和 invalidateAll 调用,请使用以下“名称/值”对:
名称 | 值 |
---|---|
UsingApplicationSessionsAndInvalidateAll | true |
UsingCustomSchemaName
使用此属性可以确保会话管理器在后续服务器启动时成功检测到会话表。
如果要对会话持久性使用 DB2 并且 customSchema 属性未设置为 DB2 JDBC 驱动程序中的缺省值,请将此定制属性设置为 true。
缺省值为 false。