要启用可用性或覆盖单个 Web 应用程序的可用性设置,请使用 sun-web.xml
文件中的设置。有关详细信息,请参见 Developer’s Guide。
要使用管理控制台启用或禁用 Web 容器的可用性,请执行以下步骤:
memory
(无持久性)file
(文件系统)和 ha
(HADB)。如果启用了可用性,则默认值为 ha
。如果禁用了可用性,则默认值为 memory
。对于需要会话持久性的生产环境,请使用 ha
。
如果将持久性类型设置为 memory
,您可以使用 sessionFilename
属性来指定正常关闭服务器实例时存储 HTTP 会话状态的文件系统位置。这对于内部测试很有用,但不受生产环境支持。
如果将持久性类型设置为 file
,您可以使用目录属性来指定存储 HTTP 会话状态的文件系统位置。保留文件系统对于内部测试很有用,但不受生产环境支持。
ha
时适用。允许的值包括:web-method
— 响应发送回客户机之前,在每个 Web 请求结束时存储会话状态。此模式为发生故障时完全更新会话状态提供了最好的保证。这是默认选项。time-based
— 在后台按照 reapIntervalSeconds
属性设置的频率存储会话状态。此模式只能为完全更新会话状态提供较少的保证。但是,它可以提供很大的性能改进,因为在每个请求之后都未存储状态。要设置属性,请参见步骤 2。ha
时适用。允许的值包括:session
— 每次都存储整个会话状态。此模式为正确存储任何可分发 Web 应用程序的会话数据提供了最好的保证。这是默认选项。modified-session
— 如果会话状态已被修改,则存储整个会话状态。如果调用了 HttpSession.setAttribute()
或 HttpSession.removeAttribute()
,则认为会话状态已被修改。您必须保证每次更改属性时都调用 setAttribute()
。这不是 J2EE 规范的要求,但是此模式需要这样做才能正常工作。modified-attribute
— 仅存储修改后的会话属性。为使此模式能够正常工作,您必须遵循以下若干指导。
每次修改会话状态时都调用 setAttribute()
。
确保各属性之间没有交叉引用。序列化并单独存储每个不同的属性关键字的对象图形。如果每个单独的关键字下的对象之间有对象交叉引用,则它们未被正确序列化和反序列化。
在多个属性之间分布会话状态,或者至少在只读属性和可修改属性之间分布会话状态。
configure-ha-cluster
命令的说明。