Sun Java System Web Server 7.0 Update 3 管理员指南

会话复制

会话复制是一种机制,用于复制存储在不同实例的会话中的数据。但是,所复制的实例必须为相同群集的一部分。在群集环境中启用会话复制时,将会复制所复制的实例中的完整会话数据。但是,会话复制操作不会复制会话中不可序列化的属性和任何特定于实例的数据。

会话复制和负载平衡为 Web 应用程序提供了很好的故障转移功能。

会话复制和故障转移操作

本节将详细介绍会话复制操作。

Web 请求结束时,Web Server 将确定是否需要通过会话复制配置(存储在服务器配置文件 server.xml 中)来复制会话数据。

假设存在由四个实例构成一个群集的一个使用案例,并且 Administration Server 中启用了会话复制。

由四个节点上运行的四个实例(A、B、C 和 D)构成的 Web Server 群集中的会话复制过程如下:

Web Server 群集环境中的故障转移过程如下:

Web Server 7.0 不支持会话复制中的以下功能:

启用会话复制

可以使用管理控制台或 CLI 在群集中启用会话复制。在启用会话复制之前,请确保浏览器启用了 cookie。

server.xml 文件包含与会话复制相关的信息。以下所示为启用了会话复制的一个 server.xml 文件样例:

<cluster>
		<local-host>hostA</local-host>
			<instance>
         <host>hostB</host>
      </instance>
      <instance>
          <host>hostC</host>
      </instance>
       <instance>
          <host>hostD</host>
      </instance>
      <instance>
           <host>hostA</host>
    <session-replication/>
</cluster>
			

如果以下元素使用默认值,server.xml 配置文件中将不包含这些元素的条目:

端口号(默认值为 1099)

协议(默认值为 jrmp

已加密(默认值为 false)

Getattribute 触发复制(默认值为 true)

复制搜索 MaxHop(默认值为 –1)

启动搜索超时(默认值为 0。依赖 Java API 获取系统计时。在非 Unix 操作系统中,此时间可能并不准确。)

Cookie 名称(默认值为 CLUSTERSESSIONLOCATOR

有关这些会话复制属性的更多信息,请参见《Sun Java System Web Server 7.0 Update 3 Administrator’s Configuration File Reference》

配置 Web 应用程序进行会话复制

要使服务器复制会话,必须为 Web 应用程序启用会话复制。

  1. 要为 Web 应用程序启用会话复制,请修改位于 <web-application>/WEB-INF 目录中的 sun-web.xml 配置文件。

    需要在 sunweb.xml 中进行的修改如下:

    将元素 <session-manager/> 更改为 <session-manager persistence-type="replicated">

    以下所示为启用了会话复制的一个 sun-web.xml 文件样例:

    <sun-web-app>
    		<session-config>
         <session-manager persistence-type="replicated">
         </session-manager>
      </session-config>
    </sun-web-app>
  2. 修改 sunweb.xml 文件后,请重新生成 Web 应用程序,或对应用程序重新进行 jar 操作以创建 Web 应用程序归档(war 文件)。

  3. 重新启动所有实例,以使 Web 应用程序在所有实例中可用。

  4. 该 Web 应用程序可从群集中的所有节点进行访问。要访问该 Web 应用程序,请在浏览器中键入以下内容:

    http://webserver-name/webapplication-name/


    注 –

    目录可以为所有节点访问是存储要进行部署的应用程序的最佳方法。但是,该目录对 Administration Server 来说,无需可访问。建议对大小超过 1 MB 的 Web 应用程序进行基于目录的部署。

    要创建搜索集合,请确保该搜索集合驻留在所有节点可以访问的公共目录中。