Sun Java System Application Server 9.1 部署规划指南

会话持久性

J2EE 应用程序通常具有大量会话状态数据。Web 购物车是会话状态的一个典型示例。此外,应用程序可以高速缓存会话对象中需要频繁使用的数据。事实上,几乎所有包含大量用户交互的应用程序都需要保留会话状态。HTTP 会话和有状态会话 Bean (Stateful Session Bean, SFSB) 均包含会话状态数据。

虽然会话状态没有存储在数据库中的事务状态那样重要,但对于最终用户来说,在出现服务器故障时保留会话状态是非常有必要的。Application Server 提供了在系统信息库中保存或保留此会话状态的功能。如果承载用户会话的应用服务器实例出现故障,则可以恢复会话状态。会话可以继续进行,而不会丢失信息。

Application Server 支持以下类型的会话持久性存储:

利用内存持久性,状态可始终保存在内存中,但会在出现故障时丢失。利用 HA 持久性,Application Server 可将 HADB 用作 HTTP 和 SFSB 会话的持久性存储。利用文件持久性,Application Server 可序列化会话对象,并将其存储到由会话管理器属性指定的文件系统位置。对于 SFSB,如果未指定 HA,则 Application Server 会将状态信息存储在此位置的 session-store 子目录中。

对需要保存的 SFSB 状态更改进行检查称为检查点操作。如果启用检查点操作,则通常会在完成任何涉及 SFSB 的事务之后(即使该事务回滚)执行该操作。有关开发有状态会话 Bean 的更多信息,请参见《Sun Java System Application Server 9.1 Developer’s Guide》中的“Using Session Beans”。有关启用 SFSB 故障转移的更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的“有状态会话 Bean 故障转移”

除了 Application Server 正在处理的请求数以外,会话持久性配置设置还会影响 HADB 每分钟收到的请求数以及每个请求中的会话信息。

有关配置会话持久性的更多信息,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 9  章 “配置高可用性会话持久性和故障转移”