Sun Java System Application Server Enterprise Edition 8.2 管理指南

Application Server 命令和概念

Sun Java System Application Server 由一个或多个域组成。域是管理边界或上下文。每个域都具有一个与其关联的管理服务器(也称为域管理服务器或 DAS),并且由零个或多个独立实例和/或群集组成。每个群集都具有一个或多个同类服务器实例。服务器实例是在一个物理计算机上运行 Application Server 的一个 Java 虚拟机 (Java Virtual Machine, JVM)。域中的服务器实例(无论为独立实例还是群集实例)可以在不同的物理主机上运行。

本节包含以下主题:

域是一组共同进行管理的实例。但是,一个应用服务器实例只能属于一个域。除了管理边界以外,域还提供了基本的安全性结构,凭借此结构,不同的管理员可以管理应用服务器实例的特定组(域)。通过将服务器实例分组到单独的域中,不同的组织和管理员可以共享一个 Application Server 安装。每个域都有自己的独立于其他域的配置、日志文件和应用程序部署区域。如果更改某个域的配置,其他域的配置不会受到影响。

Sun Java System Application Server 安装程序会创建默认管理域(名为 domain1)。它还会创建关联的域管理服务器(名为 server)。您必须提供管理服务器端口号。默认管理服务器端口号为 4849。安装程序还将查询管理用户名和密码。安装之后,还可以创建其他管理域。

域管理服务器 (Domain Administrative Server, DAS)

每个域都有自己的域管理服务器 (Domain Administrative Server, DAS),该服务器具有唯一的端口号。管理控制台与特定 DAS 进行通信以管理关联的域。每个管理控制台会话都可用于配置和管理特定的域。

域管理服务器 (Domain Administrative Server, DAS) 是专门指定的应用服务器实例,用于托管管理应用程序。DAS 会对管理员进行验证,接受来自管理工具的请求,并与域中的服务器实例进行通信以执行请求。有时,DAS 称为管理服务器或默认服务器。将它称为默认服务器是因为它是在 Sun Java System Application Server 安装时创建并可用于部署的唯一服务器实例。DAS 只是一个具有附加管理功能的服务器实例。

每个管理控制台会话都可用于配置和管理单个域。如果创建了多个域,则必须启动另外一个管理控制台会话以管理其他域。为管理控制台指定 URL 时,请确保使用与要管理的域关联的 DAS 的端口号。

群集

群集是命名的服务器实例集合,它们共享一组相同的应用程序、资源和配置信息。服务器实例只能属于一个群集。通过在多台计算机之间分配负载,群集有助于实现服务器实例负载平衡。通过进行实例级故障转移,群集还有助于实现高可用性。从管理角度看,群集表示一个虚拟化的实体,对群集的操作(如部署应用程序)将对构成群集的所有实例都起作用。

节点代理

需要对域中每个节点使用轻量代理(例如,仅托管 JMX 运行时),以便于对实例进行远程生命周期管理。它的主要用途是按照 DAS 指示启动、停止和创建服务器实例。节点代理还可用作监视程序并重新启动出现故障的进程。与 DAS 相同,节点代理应仅用于特定的管理操作,并且不应期望它具有高可用性。但是,节点代理是一个“始终运行”的组件,并且必须将其配置为通过本机 O/S 节点引导(例如,Solaris/Linux inetd 或作为 Windows 服务)启动。DAS 不需要节点代理。

服务器实例

服务器实例是在单个节点上托管 J2EE 1.4 Application Server 的单个 J2EE 兼容的 Java 虚拟机。每个服务器实例在域中都具有唯一的名称。群集服务器实例是群集的成员,并从其父群集中接收所有的应用程序、资源和配置,从而确保群集中的所有实例是同类实例。非群集服务器实例不属于群集,并且具有一组独立的应用程序、资源和配置。

应用服务器实例构成了应用程序部署的基础。每个实例都属于单个域。每个服务器实例(DAS 除外)必须包含对节点代理名称的引用,该名称定义实例将要驻留的计算机。

如果拓扑中包含远程服务器实例(DAS 之外的服务器实例),请创建节点代理以管理和改善远程服务器实例。节点代理负责创建、启动、停止和删除服务器实例。使用命令行界面命令可以设置节点代理。图 1–2 详细显示了一个应用服务器实例。

图 1–2 Application Server 实例

该图说明了服务器实例功能以及它们与各种客户机、数据库和其他服务器及系统进行通信的方法。

Sun Java System Application Server 在安装时将创建一个称为 server 的应用服务器实例。对于很多用户来说,一个应用服务器实例即可满足他们的需要。但是,根据用户环境的不同,可能需要创建一个或多个附加应用服务器实例。例如,在开发环境中,可以使用不同的应用服务器实例来测试不同的 Application Server 配置,或者比较和测试不同的应用程序部署。由于添加或删除应用服务器实例比较容易,因此可以使用这些实例创建临时的沙箱区来进行试验。

此外,还可以为每个应用服务器实例创建虚拟服务器。在一个已安装的应用服务器实例中,您可以提供公司或个人域名、IP 地址和某些管理功能。对于用户,就好比他们拥有自己的 Web 服务器,但无需进行硬件和基础服务器的维护。这些虚拟服务器不能跨应用服务器实例使用。有关虚拟服务器的更多信息,请参见第 12 章,配置 HTTP 服务

在操作部署中,很多情况下都可以使用虚拟服务器代替多个应用服务器实例。但是,如果虚拟服务器不能满足需求,您也可以使用多个应用服务器实例。停止应用服务器实例后,它将不再接受新的连接,只是等待所有未完成的连接完成。如果您的计算机崩溃或脱机,则服务器将退出,并且正在处理的所有请求都将丢失。

Application Server 命令

Application Server 的管理包括创建、配置、控制和管理域、群集、节点代理和服务器实例等任务。本节包括以下主题:

创建域

域是使用 create-domain 命令创建的。以下示例命令将创建名为 mydomain 的域。管理服务器在端口 1234 上进行侦听,管理用户名为 hanan。该命令提示输入管理密码和主密码。


$ asadmin create-domain --adminport 1234 --adminuser hanan mydomain

要为 mydomain 域启动管理控制台,请在浏览器中输入以下 URL:


http://主机名:1234

对于前面的 create-domain 示例,域的日志文件、配置文件和部署的应用程序现在位于以下目录中:

domain-root-dir/mydomain

要在其他位置创建域的目录,请指定 --domaindir 选项。要查看完整的命令语法,请键入 asadmin help create-domain

删除域

使用 asadmin delete-domain 命令可以删除域。只有可以管理域的操作系统用户(即超级用户)可以成功地执行此命令。例如,要删除名为 mydomain 的域,请键入以下命令:


$ asadmin delete-domain mydomain

列出域

使用 asadmin list-domains 命令可以找到在计算机上创建的域。要列出默认 domain-root-dir 目录中的域,请键入以下命令:


$ asadmin list-domains

要列出在其他目录中创建的域,请指定 --domaindir 选项。

启动域

启动域时,将启动管理服务器和应用服务器实例。启动应用服务器实例之后,应用服务器实例将持续运行、侦听并接受请求。必须单独启动各个域。

要启动域,请键入 asadmin start-domain 命令并指定域名。例如,要启动默认域 (domain1),请键入以下命令:


$ asadmin start-domain --user admin domain1

如果只有一个域,则可以省略域名。要查看完整的命令语法,请键入 asadmin help start-domain。如果省略了密码数据,系统将提示您提供此数据。

在 Windows 上启动默认域

在 Windows“开始”菜单中,依次选择“程序”-> "Sun Microsystems" -> "Application Server" ->“启动管理服务器”。

停止域

停止域将关闭该域的管理服务器和应用服务器实例。停止域时,服务器实例将停止接收新的连接,然后等待所有未完成的连接完成。由于服务器实例必须完成其关闭进程,因此该进程需要几秒钟时间。当域停止时,管理控制台或大多数 asadmin 命令都无法使用。

要停止域,请键入 asadmin stop-domain 命令并指定域名。例如,要停止默认域 (domain1),请键入以下命令:


$ asadmin stop-domain domain1

如果只有一个域,则域名是可选键入项。要查看完整的语法,请键入 asadmin help stop-domain

在 Windows 上停止默认域

在“开始”菜单中,依次选择“程序”-> "Sun Microsystems" -> "Application Server" ->“停止管理服务器”。

重新启动域

重新启动服务器与重新启动域相同。要重新启动域或服务器,请停止然后再启动域。

创建群集

群集是使用 create-cluster 命令创建的。以下示例将创建名为 mycluster 的群集。管理服务器主机为 myhost,服务器端口为 1234,管理用户名为 admin。该命令提示输入管理密码。


$ asadmin create-cluster --host myhost --port 1234 --user admin mycluster

要查看完整的语法,请键入 asadmin help create-cluster

启动群集

群集是使用 start-cluster 命令启动的。以下示例将启动名为 mycluster 的群集。该命令提示输入管理密码。


$ asadmin start-cluster --host myhost --port 1234 --user admin mycluster

myhost 为管理服务器主机,1234 为管理端口,admin 为管理用户名。

要查看完整的语法,请键入 asadmin help start-cluster。启动群集时,将启动群集中的所有服务器实例。无法启动没有实例的群集。

停止群集

群集是使用 stop-cluster 命令停止的。以下示例将停止名为 mycluster 的群集。该命令提示输入管理密码。


$ asadmin stop-cluster --host myhost --port 1234 --user admin mycluster

myhost 为管理服务器主机,1234 为管理端口,admin 为管理用户名。

要查看完整的语法,请键入 asadmin help stop-cluster。停止群集时,将停止群集中的所有服务器实例。无法停止没有实例的群集。

创建节点代理

节点代理是使用 create-node-agent 命令创建的。以下示例将创建名为 mynodeagent 的节点代理。管理服务器主机为 myhost,管理服务器端口为 1234,管理用户名为 admin。该命令提示输入管理密码。


$ asadmin create-node-agent --host myhost --port 1234 --user admin mynodeagent

要查看完整的语法,请键入 asadmin help create-node-agent

启动节点代理

使用 start-node-agent 命令并指定节点代理名称可以启动节点代理。例如,要启动节点代理 mynodeagent,请键入以下命令:


$ asadmin start-node-agent --user admin mynodeagent

要查看完整的语法,请键入 asadmin help start-node-agent

停止节点代理

使用 stop-node-agent 命令并指定节点代理名称可以停止节点代理。例如,要停止节点代理 mynodeagent,请键入以下命令:


$ asadmin stop-node-agent mynodeagent

要查看完整的语法,请键入 asadmin help stop-node-agent

创建实例

服务器实例是使用 create-instance 命令创建的。以下示例将创建名为 myinstance 的实例。管理服务器主机为 myhost,管理服务器端口为 1234,管理用户名为 admin。该命令提示输入管理密码。

以下示例将创建名为 myinstance 的群集服务器实例。该命令提示输入管理密码。


$ asadmin create-instance --host myhost --port 1234 
--user admin --cluster mycluster --nodeagent mynodeagent myinstance

myhost 为管理服务器主机,管理端口为 1234,管理用户名为 admin,此服务器实例所属的群集为 mycluster,管理此服务器实例的节点代理为 mynodeagent

要查看完整的语法,请键入 asadmin help create-instance

要创建独立服务器实例,请不要指定 --cluster 选项。

以下示例将创建名为 myinstance 并由名为 mynodeagent 的节点代理管理的独立服务器实例。


$ asadmin create-instance --host myhost --port 1234 
--user admin --nodeagent mynodeagent myinstance

启动实例

服务器实例是使用 start-instance 命令启动的。以下示例将启动名为 myinstance 的服务器实例。该命令提示输入管理密码。


$ asadmin start-instance --host myhost --port 1234 --user admin  myinstance

管理服务器主机为 myhost,管理端口为 1234,管理用户名为 admin。服务器实例 myinstance 可以为群集实例,也可以为独立实例。

要查看完整的语法,请键入 asadmin help start-instance

停止实例

服务器实例是使用 stop-instance 命令停止的。以下示例将停止名为 myinstance 的实例。该命令提示输入管理密码。


$ asadmin stop-instance --host myhost --port 1234 --user admin  myinstance

管理服务器主机为 myhost,管理端口为 1234,管理用户名为 admin。服务器实例 myinstance 可以为群集实例,也可以为独立实例。

要查看完整的语法,请键入 asadmin help stop-instance

重新启动实例

要重新启动服务器实例,请停止然后再启动实例。

重新创建域管理服务器

要进行镜像和提供域管理服务器 (Domain Administration Server, DAS) 的工作副本,您必须拥有以下设备:


注 –

必须对第一台计算机上的 DAS 进行备份。使用 asadmin backup-domain 来备份当前域。


Procedure迁移 DAS

以下步骤用于将域管理服务器从第一台计算机 (machine1) 迁移到第三台计算机 (machine3)。

  1. 在第三台计算机上安装应用服务器,方法与在第一台计算机上安装相同。

    为了可以在第三台计算机上正确地恢复 DAS 并且不会发生路径冲突,您必须执行此操作。

    1. 使用命令行(交互式)模式来安装应用服务器管理软件包。要激活交互式命令行模式,请使用 console 选项调用安装程序:


      ./bundle-filename -console

      要使用命令行界面进行安装,您必须具有超级用户权限。

    2. 要安装默认域,请取消选择该选项。

      只有具有相同体系结构并具有完全相同的安装路径(即都使用相同的 install-dirdomain-root-dir)的两台计算机才支持备份域的恢复。

  2. 将第一台计算机上的备份 ZIP 文件复制到第三台计算机上的 domain-root-dir 中。也可以通过 FTP(文件传输协议)方式传输文件。

  3. 执行 asadmin restore-domain 命令以将 ZIP 文件恢复到第三台计算机:


    asadmin restore-domain --filename domain-root-dir/sjsas_backup_v00001.zip domain1

    可以备份任何域。但是,在重新创建域时,域名称应与原始域名称相同。

  4. 将第三台计算机上的 domain-root-dir/domain1/generated/tmp 目录的权限更改为与第一台计算机上相同目录的权限相匹配。

    该目录的默认权限为:?drwx------?(或 700)。

    例如:

    chmod 700 domain-root-dir/domain1/generated/tmp

    以上示例假定您备份的是 domain1。如果备份的是其他名称的域,应使用要备份的域的名称替换上面的 domain1

  5. 更改第三台计算机的 domain.xml 文件中的主机属性值:

  6. 更新第三台计算机上的 domain-root-dir/domain1/config/domain.xml

    例如,搜索 machine1 并将其替换为 machine3。这样,您就可以将:

    <jmx-connector><property name=client-hostname value=machine1/>...

    更改为:

    <jmx-connector><property name=client-hostname value=machine3/>...
  7. 将:

    <jms-service... host=machine1.../>

    更改为:

    <jms-service... host=machine3.../>
  8. 在 machine3 上启动已恢复的域:


    asadmin start-domain --user admin-user --password admin-password domain1
  9. 在 machine2 上更改节点代理下的 DAS 主机属性值。

  10. 更改 machine2 中 install-dir/nodeagents/nodeagent/agent/config/das.properties 中的 agent.das.host 属性值。

  11. 在 machine2 上重新启动节点代理。


    注 –

    使用 asadmin start-instance 命令启动群集实例,可以使这些实例与已恢复的域同步。


更改管理员密码

要重新设置管理员密码,必须停止域中的所有节点代理。这将停止所有关联的服务器实例。此时,所有的服务器实例和节点代理均停止,只有域管理服务器 (Domain Administration Server, DAS) 在运行。

现在,您可以按如下方式更改管理用户的密码:

  1. 使用命令行界面更改管理密码:

    asadmin update-file-user --authrealmname admin-realm ... --userpassword newpassword <admin-user-name>

  2. 使用管理控制台更改管理密码:

    选择管理服务器的配置节点>“安全性”>“领域”>“管理领域”>“编辑文件领域用户”。

    将显示一条指示您已经成功更改了管理员密码的消息。

  3. 按如下方式使用新密码重新启动域管理服务器 (Domain Admin Server, DAS):

    使用命令行界面:asadmin start-domain --user admin --password newpassword domain1

    假设进行了以下配置:域中具有两个节点代理 (i1na, c1-na) 以及三个实例(c1i1c1i2 位于名为 c1 的相同群集中,i1 为独立服务器实例)。

  4. 使用新密码重新启动代理节点而不启动实例。

    例如:

    asadmin start-node-agent --user admin --password newpassword --startinstances=false i1-na asadmin

    asadmin start-node-agent --user admin --password newpassword --startinstances=false c1-na

  5. 重新启动服务器和群集。

    asadmin start-node-agent --user admin --password newpassword ... c1

    asadmin start-node-agent --user admin --password newpassword i1