有关配置会话持久性的说明,请参见《Sun Java System Application Server 9.1 高可用性管理指南》中的第 9 章 “配置高可用性会话持久性和故障转移”。
HADB 每分钟收到的请求数取决于持久性频率。持久性频率决定了 Application Server 将 HTTP 会话数据保存到 HADB 中的频率。
持久性频率选项为:
web-method(默认):服务器将会话数据与每个 HTTP 响应存储在一起。此选项可确保存储的会话信息是最新的,但会产生较高的 HADB 通信量。
time-based:按指定的时间间隔存储会话。此选项可减少 HADB 通信量,但无法确保会话信息是最新的。
下表简要说明了持久性频率选项的优缺点。
表 2–1 持久性频率选项的比较
持久性频率选项 |
优点 |
缺点 |
---|---|---|
web-method |
确保提供最新的会话信息。 |
可能会增加响应时间并降低吞吐量。 |
time-based |
响应时间较短,并且可能会提高吞吐量。 |
不能完全确保在应用服务器实例出现故障后提供最新的会话信息。 |
要提高整体性能,应尽可能减少会话中的信息量。
可通过持久性范围设置微调每个请求的会话大小。请从以下 HTTP 会话持久性范围选项中进行选择:
session:每次服务器将会话信息保存到 HADB 时,将序列化并保存整个会话对象。
modified-session:服务器仅会保存已修改的会话。它通过截获对该 Bean 的 setAttribute() 方法的调用来检测修改。此选项将不检测对内部对象的直接修改,因此,在这种情况下,必须对 SFSB 进行编码才能显式调用 setAttribute()。
modified-attribute:服务器仅保存自上次会话存储以来修改(插入、更新或删除)的属性。它与 modified-session 的缺点相同,但如果正确应用,可以显著降低 HADB 写入吞吐量要求。
要使用此选项,应用程序必须:
在每次修改会话状态时调用 setAttribute() 或 removeAttribute()。
确保各属性之间没有交叉引用。
在多个属性之间分布会话状态,或者至少在只读属性和可修改属性之间分布会话状态。
下表简要说明了持久性范围选项的优缺点。
对于 SFSB 会话持久性,HADB 上的负载取决于以下内容:
为检查点启用的 SFSB 数。
为检查点选择的 SFSB 方法以及使用这些方法的频率。
会话对象的大小。
哪些方法是事务性的。
通常在完成任何涉及 SFSB 的事务之后(即使该事务回滚)执行检查点操作。
为了获得最佳性能,请为检查点指定较少的一组方法。所检查的数据大小以及检查频率决定了在给定客户机交互的响应时间方面产生的额外开销。