Sun Java logo     上一个      目录      索引      下一个     

Sun logo
Sun Java System Application Server 企业版 7 2004Q2 入门指南 

第 3 章
企业功能配置教程

本章中的教程介绍了如何设置和使用 Sun Java System Application Server 环境中的功能。本章包括以下数节:


使用教程之前的准备工作

本指南的内容包括设置群集环境、将应用程序部署到该环境中,以及用该应用程序测试负载平衡和 HTTP 会话持久性功能。本指南中有两个教程:企业功能配置教程介绍如何配置群集和负载平衡器;Cluster JSP 样例应用程序教程介绍如何部署应用程序及如何检验负载平衡和会话持久性已发挥作用。

本节包括以下主题:

安装需求

此处建议的安装配置是配合本指南使用的基本的单机配置,并不一定是恰好适合您的环境的配置。在您的环境中部署 Sun Java System Application Server 之前,请仔细考虑您自己的需要。有关建议配置的详细信息,请参见 Sun Java System Application Server System Deployment Guide

为了使用本指南中包含的教程,请使用以下基本配置:

使用教程之前需要执行的步骤

开始使用教程之前,必须已完成以下步骤。

表 3-1 使用教程之前的准备步骤

步骤

相关说明的位置

1. 安装 Sun Java System Web Server

Sun Java System Web Server Installation Guide

2. 安装 Sun Java System Application Server,包括:

  • 负载平衡器插件
  • HADB

《Sun Java System Application Server 安装指南》

3. 设置计算机中的以下内容:

  • 共享的内存
  • 使用 rsh 或 ssh 的通信
  • 设置环境变量以使用 HADB

《Sun Java System Application Server 安装指南》

4. 运行 clsetup 以执行以下配置:

  • 在域 domain1 中创建并配置两个应用服务器实例 server1 和 server2。
  • 创建 HADB。
  • 创建在 HADB 中存储会话信息所需的数据库表。
  • 创建实例中的连接池。
  • 创建所有实例中的 JDBC 资源。
  • 配置应用服务器实例中的会话持久性信息。
  • 启用应用服务器实例中的高可用性。

《Sun Java System Application Server 安装指南》


教程步骤概述

下表总结了本教程中配置系统、部署应用程序和检验企业功能所需的步骤。左侧列中介绍了步骤,右侧列中给出了执行该步骤所需说明的位置。

表 3-2 使用教程的步骤

步骤

所需说明的位置

1. 启动管理服务器和应用服务器实例。

启动服务器

2. 检验管理服务器和应用服务器实例正在运行。

检验服务器的启动

3. 创建 loadbalancer.xml 文件。

创建 loadbalancer.xml 文件

4. 在 loadbalancer.xml 中设置一个群集。

将群集添加到 loadbalancer.xml 文件

5. 在 loadbalancer.xml 文件中配置负载平衡器。

配置负载平衡

6. 利用样例 loadbalancer.xml 文件检验用户 loadbalancer.xml 文件。

样例 loadbalancer.xml 文件

7. 使用 cladmin 将样例应用程序部署到群集中的实例。

将 Cluster JSP 样例应用程序部署到群集中

8. 使用 cladmin 启动应用服务器实例。

使用 cladmin 命令启动应用服务器实例

9. 检验应用程序的部署是否成功。

验证应用程序部署

10. 在 loadbalancer.xml 中将样例应用程序添加到群集信息。

将样例应用程序添加到群集

11. 应用更改并重新启动 Web 服务器。

应用配置更改并重新启动 Web 服务器

12. 运行样例。

运行应用程序

13. 检验负载平衡。

验证 HTTP 负载平衡

14. 检验会话的持久性。

验证 HTTP 会话持久性

15. 停顿服务器实例。

停顿服务器实例


启动服务器

能够使用本指南中的教程之前,需要启动管理服务器和群集中所有的应用服务器实例。同时,Sun Java System Web Server 也须正在运行。

如果所有的服务器实例和管理服务器位于单个域中,那么启动管理服务器和应用服务器实例的最直接的方法是使用 asadmin 实用程序的 start-domain 命令。

本节包括以下主题:

设置 PATH 变量

为了方便起见,运行 asadmin 之前,可以设置 PATH 变量。

设置 PATH 变量可使您从命令行运行 asadmincladminasant(应用服务器的 Ant 实用程序),而无论您位于什么位置。请将下面的目录添加到 PATH 环境变量:

如果将 Application Server 的 bin 目录添加到登录配置文件中,则登录时该目录将被自动添加到环境的 PATH 设置中。

例如,将下面的内容添加到 .cshrc 文件:

set path=( /opt/SUNWAppserver7/bin)

保存文件后,对其执行 source 命令:

source .cshrc

您可以在命令提示符下,通过执行 asadmin 实用程序来测试所做的更改。请键入:

asadmin

应显示以下结果:

Use "exit" to exit and "help" for online help

asadmin>

请键入 exit 以退出 asadmin 界面。

如果该命令未找到:

如果没有设置 PATH 环境变量,您仍然可以从这些命令和实用程序所在的目录中 (install_dir/bin) 运行它们。例如:

cd /opt/SUNWappserver7/bin

./asadmin

运行 asadmin start-domain

要启动管理服务器及其中的所有应用服务器实例,请运行 asadmin start-domain 命令。在命令提示符下,键入:

asadmin start-domain --domain domain1

domain1 是安装服务器和运行 clsetup 命令时配置的缺省域。


在本指南介绍的配置中,所有的实例均位于同一个域中。如果服务器实例不是位于同一个域中,则需要为计划使用的每个域运行一次 asadmin start-domain。创建一个群集后,还可以使用 cladmin start-instance 来启动该群集中的所有实例。有关 cladmin 语法的信息,请参见 cladmin 命令的语法


使用下面的命令停止管理服务器和最初配置的域的应用服务器实例:

asadmin stop-domain --domain domain1

其中,domain1 是在应用服务器安装过程中定义的管理域的名称。

有关 asadmin 命令的完整列表,请参见 asadmin 帮助。要访问帮助,请在命令提示符下键入:

asadmin

如果已设置 PATH 变量,提示应会更改为 asadmin 提示。请在提示下键入 help,以查看所有 asadmin 命令的列表。要获得关于某条特定 asadmin 命令的帮助,请在 asadmin 提示下键入该命令的名称,后接帮助选项。例如:

asadmin> start-domain --help


检验服务器的启动

启动管理服务器和应用服务器实例之后,请按照以下各部分中的说明检验它们是否已启动成功:

检验管理服务器的启动

可以通过访问 Sun Java System Application Server 的管理界面或通过查看管理服务器的事件日志来检验管理服务器的启动,如以下各部分所述:

访问管理界面

要检验管理服务器已正确启动,可以访问 Sun Java System Application Server 基于 Web 的管理界面。您可以使用此界面来管理 Sun Java System Application Server 的实例;但对于群集的实例,使用 cladmin 命令会更方便,引发错误的可能性也更小。


有关与管理界面兼容的浏览器列表,请参见 Sun Java System Application Server Platform Summary


要访问管理界面,请执行以下步骤:

  1. 打开一个浏览器窗口并指定管理服务器端口。
  1. 使用产品安装过程中提供的管理用户名和口令登录到管理界面。

  2. 提示

    忘记了用户名或口令? 如果您忘记了安装过程中提供的管理服务器用户名,请尝试使用用户名 admin,这是安装过程中在服务器配置对话框中指定的缺省用户名。

    如果您忘记了管理员口令,请查看 install_config_dir 目录中的 clpassword.conf 文件,该文件是安装服务器时创建的。只有 root 用户才可读取此文件。



    提示

    端口不可访问? 如果尝试连接管理服务器的管理界面时,连接被拒绝,可能是因为管理服务器没有运行。请检查启动过程和管理服务器日志文件的内容,以确定服务器没有运行的原因。有关查看日志文件的说明,请参见查看管理服务器的事件日志


查看管理服务器的事件日志

您可以在管理服务器的事件日志中查看服务器启动消息。要打开并查看事件日志文件,请执行以下步骤:

  1. 浏览到管理服务器的服务器日志:
  1. 在编辑器中打开 server.log
  2. 如果服务器已启动,您可以在日志文件的末尾找到 successful server startup

    [20/Feb/2003:00:06:00] INFO ( 4318): CORE3274: successful server startup

您也可以使用 tail -f 命令来查看服务器日志中的消息。

tail -f server.log

-f 选项可使 tail 命令持续运行,以便在新的日志条目被写入文件时显示这些条目。

您还可以通过管理界面访问管理服务器和应用服务器实例的事件日志文件。单击左侧窗格中的服务器名称(管理服务器或应用服务器实例),然后单击右侧窗格中的“日志”选项卡。

有关详细信息,请参见 Sun Java System Application Server Administration Guide

检验服务器实例的启动

运行 clsetup 之后,在 domain1 中应该有两个服务器实例:server1 和 server2。本部分讨论了检验这些实例存在且正在运行的两种方法:

使用 asadmin 检验实例

要检验实例,请使用 asadmin list-instances 命令:

  1. 在命令提示符下键入 asadmin,以启动 asadmin
  2. asadmin

    提示将变为 asadmin>

  3. asadmin 提示下使用 list-instances 命令显示所有当前实例。
  4. list-instances

    此命令将列出一些实例及其当前是否正在运行。您应该看到两个正在运行的实例 server1 和 server2。

通过访问 HTTP 服务器来检验实例

确定应用服务器实例是否已经启动的另一种方法是通过 Web 浏览器访问实例的 HTTP 服务器欢迎页。

使用浏览器访问以下位置:

http://server_instance:server_instance_port_number

其中,server_instance_port_number 是安装或创建服务器实例过程中指定的 HTTP 服务器端口号。


提示

如果忘记了服务器的 HTTP 服务器端口号,可以查看应用服务器实例的配置文件以确定 HTTP 服务器端口号:

  1. 浏览到 domain_config_dir/domain1/server_instance/config/ 目录,然后在常用的编辑器中打开 server.xml 文件。
  2. 查找 http-listener 元素,例如:

http-listener id="http-listener-1" address="0.0.0.0" port="81"...

在本例中,端口 81 是正在使用的 HTTP 端口号。


如果应用服务器实例已启动并运行正常,您应该能在浏览器中看到默认的 HTTP 服务器欢迎页。


提示

HTTP 服务器欢迎页:HTTP 服务器欢迎页是一个名为 index.html 的 HTML 页面,位于应用服务器实例的默认文档目录中。应用服务器实例的 server.xml 配置文件包含了该实例默认文档根目录的设置。安装后,实例 server1 的文档根目录将被设置为 domain_config_dir/domain1/server1/docroot/。您可在该位置找到欢迎页。



创建 loadbalancer.xml 文件

安装组件、运行 clsetup 并启动管理服务器之后,您就可以配置该安装了。第一步是创建一个群集。

因为本指南的群集配置使用一个负载平衡器插件,所以必须在 Web 服务器的 loadbalancer.xml 配置文件中定义群集。此文件位于 Web 服务器的配置文件目录中。默认情况下,loadbalancer.xml 文件并不存在,您必须创建该文件。

要创建 loadbalancer.xml 文件,请执行以下步骤:

  1. 在 Web 服务器的 config 目录中,找到名为 loadbalancer.xml.example 的示例 loadbalancer.xml 文件。
  2. 默认情况下,该目录为:

    webserver_install_dir/servers/https-server_name/config

  3. loadbalancer.xml.example 的一个副本保存为 loadbalancer.xml
  4. 您将编辑该副本以包含环境信息,包括创建群集和启用负载平衡功能的信息。

代码示例 3-1 中显示了一个示例 loadbalancer.xml 文件。

代码示例 3-1 loadbalancer.xml.example 文件

<!DOCTYPE loadbalancer PUBLIC "-//Sun Microsystems Inc.//DTD Sun ONE Application Server 7.0//EN" "sun-loadbalancer_1_1.dtd">

<loadbalancer>

  <cluster name="cluster1">

    <instance name="instance1" enabled="true" disable-timeout-in-minutes="60" listeners="<REPLACE_WITH_LISTENER1> <REPLACE_WITH_LISTENER2>"/>

    <web-module context-root="/abc" enabled="true" disable-timeout-in-minutes="60" enabled="true" />

    <health-checker url="/" interval-in-seconds="10" timeout-in-seconds="30" />

  </cluster>

  <property name="reload-poll-interval-in-seconds" value="60"/>

  <property name="response-timeout-in-seconds" value="30"/>

  <property name="https-routing" value="true"/>

  <property name="require-monitor-data" value="false"/>

</loadbalancer>

请注意,示例文件指的是 sun-loadbalancer_1_1.dtd,它同样位于 Web 服务器的 config 目录中。


将群集添加到 loadbalancer.xml 文件

下一步,您需要将一个群集(本教程中称为 cluster1)添加到 loadbalancer.xml 文件。群集包含两个 Sun Java System Application Server 或服务器实例。

编辑新创建的 loadbalancer.xml,以在 HTTP 侦听程序中包含实例和 UTL:

  1. 转到 Web 服务器的 config 目录并用文本编辑器打开 loadbalancer.xml
  2. 请注意,样例文件已经包含群集 cluster1。

    <cluster name=“cluster1”>

  3. 将使用 clsetup 创建的两个应用服务器实例 server1server2 添加到 cluster1
  4. 为每个实例创建一个群集的实例子元素。需要启用实例 (enabled=true),还需要添加 HTTP 侦听程序的 URL。对于默认的服务器实例 (server1) 和您添加的第二个服务器实例 (server2),它们会各有一个 HTTP 侦听程序。在不同的环境中,可以拥有更多的侦听程序。

    样例 loadbalancer.xml 文件包含以下这些可以编辑的行:

    <instance name="instance1" enabled="true" disable-timeout-in-minutes="60" listeners="<REPLACE_WITH_LISTENER1> <REPLACE_WITH_LISTENER2>"/>

  5. 对于本教程,请用“server1”替换“instance1”。
  6. 用服务器实例的侦听程序的 URL 替换 <REPLACE_WITH_LISTENER1>,例如:
  7. http://test.sun.com:81

    侦听程序的 URL 由服务器名和端口组成。如果侦听程序启用了安全性,则 URL 以 HTTPS 开头。如果侦听程序未启用安全性,则 URL 以 HTTP 开头。查找有关每个 Sun Java System Application Server 实例的 HTTP 侦听程序的信息的步骤:

    1. 在管理界面中,单击实例名称以展开树视图。
    2. 单击“HTTP 服务器”以展开该服务器。
    3. 在“HTTP 服务器”下,单击“HTTP 侦听程序”。
    4. HTTP 侦听程序页将报告端口、服务器名以及是否启用了安全性。
  8. 请将所做的更改保存到 loadbalancer.xml。此时文件会有与以下内容类似的一行:
  9. <instance name="server1" enabled="true" disable-timeout-in-minutes="60" listeners="http://test.sun.com:81"/>

  10. disable-timeout-in-minutes 的值更改为 5。
  11. 禁用超时(分)是实例的停顿时间,服务器实例的会话将在该时间段中终止。在此期间,服务器仍在运行,但只接受现有会话的请求,新会话生成的请求将不再发送到该服务器。在现实世界中,此数字可能会很高。示例中指定的时间是 60 分。但是,因为本教程需要您关闭服务器,所以要求您将超时值人为地设置得低一些。

    <instance name="server1" enabled="true" disable-timeout-in-minutes="5" listeners="http://test.sun.com:81"/>

  12. 将第二个实例添加到群集元素。要完成此操作,您可以首先复制上一步中的行,然后将其粘贴到自身的下面,最后更改服务器名和侦听程序的 URL。例如:
  13. <instance name="server2" enabled="true" disable-timeout-in-minutes="5" listeners="http://test.sun.com:82"/>

  14. 保存更改。

至此,loadbalancer.xml 文件应与下面的内容类似:

<!DOCTYPE loadbalancer PUBLIC "-//Sun Microsystems Inc.//DTD Sun ONE Application Server 7.0//EN" "sun-loadbalancer_1_1.dtd">

<loadbalancer>

  <cluster name="cluster1">

    <instance name="server1" enabled="true" disable-timeout-in-minutes="5" listeners="http://test.sun.com:81"/>

    <instance name="server2" enabled="true" disable-timeout-in-minutes="5" listeners="http://test.sun.com:82"/>

    <web-module context-root="/abc" enabled="true" disable-timeout-in-minutes="60" enabled="true" />

    <health-checker url="/" interval-in-seconds="10" timeout-in-seconds="30" />

  </cluster>

  <property name="reload-poll-interval-in-seconds" value="60"/>

  <property name="response-timeout-in-seconds" value="30"/>

  <property name="https-routing" value="true"/>

  <property name="require-monitor-data" value="false"/>

</loadbalancer>

您将在以后的操作中添加与已部署的应用程序(以“web-module”开头的示例行)关联的信息。


loadbalancer.xml 文件中启用应用服务器实例与启动应用服务器实例有所不同。即使服务器正在运行,且已将其添加到群集,负载平衡器也不会将请求路由到服务器实例,直到您将 instance 元素的 enabled 属性设置为 true,从而在 loadbalancer.xml 中启用了该服务器实例。



配置负载平衡

创建 loadbalancer.xml 文件并添加群集之后,请编辑 loadbalancer.xml 文件,以包含负载平衡器的设置。

本节包括以下主题:

配置运行状况检查器

启用运行状况检查器后,负载平衡器将定期检查所有运行状况被标记为异常的 Sun Java System Application Server 实例,以查看其运行状况是否已变为正常。如果曾被标记为异常的应用服务器实例已变为正常,该实例将被添加到正常实例的列表,请求也将再次被路由到该实例。

运行状况检查器可以在 loadbalancer.xmlhealth-checker 元素中配置。您可以配置以下内容:运行状况检查器强制回应,以查看服务器是否正在运行的侦听程序的 URL;运行状况检查器强制回应服务器的频率;以及将服务器标为异常之前,运行状况检查器等待响应的时间。

示例 loadbalancer.xml 文件包含以下这一行,您无需为了完成本指南中的任务而编辑该行。

<health-checker url="/" interval-in-seconds="10" timeout-in-seconds="30" />

例如,使用缺省值,运行状况检查器将执行以下步骤:

  1. 运行状况检查器使用运行状况检查器的 URL 强制回应异常的侦听程序。
  2. 对于每个侦听程序,运行状况检查器都将等待 30 秒 (timeout-in-seconds) 以获得响应。
  3. 如果服务器在 30 秒内响应,则侦听程序将被标记为正常。如果服务器没有响应,运行状况检查器将认为该服务器仍处于异常状态。

  4. 在启动下一个运行状况检查周期之前,运行状况检查器将等待 10 秒 (interval-in-seconds)。
  5. 如果运行状况检查器启动时没有异常实例,运行状况检查器将跳过前两个步骤。

启用负载平衡器的监视功能

负载平衡器插件使用 Web 服务器的日志机制来生成日志消息。启用监视功能后,以下信息将被记录到 Web 服务器的日志文件中:

要监视负载平衡,需要进行以下操作:

要在 loadbalancer.xml 中启用监视功能,请执行以下步骤:

  1. 使用文本编辑器打开 loadbalancer.xml
  2. 找到以下行(示例 loadabalancer.xml 文件的一部分):
  3. <property name="require-monitor-data" value="false"/>

  4. 将“false”更改为“true”以启用监视功能。
  5. 保存更改并退出文件。

此外,如果要更改默认的 Web 服务器日志级别,请执行以下步骤:

打开 Sun Java System Web Server 的冗余日志:

  1. 转到 Web 服务器的 config 目录。如果 Sun Java System Web Server 安装在缺省位置,则该路径是:
  2. /web_server_install_dir/https-server_name/config

  3. 打开 magnus.conf 以进行编辑。
  4. 添加以下行:
  5. LogVerbose on

  6. 将更改保存到文件。
  7. 重新启动 Web 服务器以应用这些更改。

负载平衡器的其它特性

示例 loadbalancer.xml 文件中包含了负载平衡器的一些其它特性:

<property name="reload-poll-interval-in-seconds" value="60"/>

<property name="response-timeout-in-seconds" value="30"/>

<property name="https-routing" value="true"/>

在本教程中,您无需更改这些缺省值。有关这些特性的详细信息,请参见以下各部分:

使用重新装入轮询时间间隔来进行动态重新配置

完成初始配置后,负载平衡器插件将检测对其配置所做的更改并自动装入这些更改。负载平衡器插件检测这些更改的方式是查看 loadbalancer.xml 文件中的时间戳。如果时间戳已更改,负载平衡器将自动进行自我重新配置。重新装入轮询时间间隔指定了负载平衡器检查时间戳的频率。


  • 如果对 loadbalancer.xml 文件进行更改时使用的格式不是 sun-loadbalancer_1_0.dtd 文件中指定的正确格式,重新配置操作将会失败。失败通知将记录到 Web 服务器错误日志文件中。
  • 负载平衡器将继续使用已装入内存的旧配置。

  • 如果尝试进行自我重新配置时,负载平衡器遇到了硬盘读取错误,它将使用内存中的当前配置。

    遇到磁盘读取错误后,相关的警告消息将被记录到 Web 服务器错误日志文件中。

Sun Java System Web Server 的错误日志文件位于:web_server_install_dir/web_server_instance/logs/


响应超时

响应超时指定了服务器等待实例响应请求的时间。超过指定的秒数后,如果实例仍未响应,将向浏览器发送一条错误消息。

HTTPS 路由选择

禁用 HTTPS 路由选择后,系统将忽略 loadbalancer.xml 文件中列出的 HTTPS 侦听程序,而仅对负载平衡使用 HTTP 侦听程序。启用 HTTPS 路由选择后,HTTPS 请求将仅故障转移到 HTTPS 端口。


样例 loadbalancer.xml 文件

以下的样例 loadbalancer.xml 文件包含一个带有两个实例的群集。请对照本示例,检查您的 loadbalancer.xml 文件的语法。

代码示例 3-2 loadbalancer.xml 文件

<!DOCTYPE loadbalancer PUBLIC "-//Sun Microsystems Inc.//DTD Sun ONE Application Server 7.0//EN" "sun-loadbalancer_1_1.dtd">

<loadbalancer>

  <cluster name="cluster1">

    <instance name="server1" enabled="true" disable-timeout-in-minutes="5"

listeners="http://test.sun.com:81"/>

    <instance name="server2" enabled="true" disable-timeout-in-minutes="5"

listeners="http://test.sun.com:82"/>

    <web-module context-root="/abc" enabled="true" disable-timeout-in-minutes="60" enabled="true" />

    <health-checker url="/" interval-in-seconds="10" timeout-in-seconds="30" />

  </cluster>

  <property name="reload-poll-interval-in-seconds" value="60"/>

  <property name="response-timeout-in-seconds" value="30"/>

  <property name="https-routing" value="true"/>

  <property name="require-monitor-data" value="true"/>

</loadbalancer>

现在,企业功能已经配置完毕,您可以部署和运行样例应用程序了。请继续阅读第 4 章“Cluster JSP 样例应用程序教程”



上一个      目录      索引      下一个     


版权所有 2004 Sun Microsystems, Inc. 保留所有权利。