Sun Java System Application Server 9.1 管理指南

附录 A 自动重新启动域或节点代理

如果域或节点代理被意外停止(例如,您需要重新启动计算机),您可以将系统配置为自动重新启动域或节点代理。

本附录包括以下主题:

在 Solaris 10 上自动重新启动

Solaris 10 用户可以使用命令 asadmin create-service 创建一个用于重新启动节点代理或域管理服务器 (Domain Administration Server, DAS) 的服务。所创建的服务使用 Solaris 服务管理工具 (Service Management Facility, SMF)。

服务所启动的进程取决于该服务要重新启动 DAS 还是节点代理。

服务将运行进程的用户的权限授予进程。使用命令 asadmin create-service 创建 SMF 服务时,默认用户是超级用户。如果需要其他用户运行进程,请在 method_credential 中指定用户。

如果进程要绑定到 Solaris OS 的特权端口,则进程需要 net_privaddr 权限。Solaris OS 的特权端口的端口号小于 1024。

要确定用户是否具有 net_privaddr 权限,请以该用户身份登录,然后键入命令 ppriv -l | grep net_privaddr

要运行 asadmin create-service 命令,必须具有 solaris.smf.* 授权。请参见 useraddusermod 手册页以了解如何设置授权。还必须具有目录树中的写入权限:/var/svc/manifest/application/SUNWappserver。通常,超级用户具有这两种权限。此外,PATH 中必须具有 Solaris 10 管理命令(如 svccfgsvcsauths)。有关运行此命令的完整信息,请参见 create-service(1)

语法如下:


asadmin create-service [--name service-name] [--type das|node-agent]
--passwordfile password-file [--serviceproperties serviceproperties] 
domain-or-node-agent-configuration-directory

    例如,为 domain1 创建一个名为 domain1 的服务:

  1. 运行以下命令:

    asadmin create-service --type das --passwordfile password.txt /appserver/domains/domain1

    这将创建一个自动重新启动域 domain1 的服务。在后台中,该命令从模板创建清单文件,验证该文件,并将其作为服务导入。


    注 –

    如果特定的 Application Server 域不应该具有默认的用户权限,请修改服务的清单,然后重新导入服务。要确定用户的权限,请以该用户身份登录,然后键入命令 ppriv -l


  2. 创建服务后,使用 svacdm enable 命令启用它:

    svacdm enable /appserver/domains/domain1

  3. 在启用之后,如果域关闭,则 SMF 将重新启动该域。

在您管理服务时,以下 Solaris 命令是很有用的:

有关这些命令的更多信息,请参见命令手册页。

在 Solaris 9 和 Linux 平台上使用 inittab 自动重新启动

要在 Solaris 9 或 Linux 平台上重新启动域,请在 /etc/inittab 文件中添加一行文本。

如果使用 /etc/rc.local 或系统的等效文件,请在 /etc/rc.local 中添加一行调用所需 asadmin 命令的文本。

例如,要重新启动安装在 opt/SUNWappserver 目录中的 Application Server 的 domain1,请使用名为 password.txt 的密码文件:


das:3:respawn:/opt/SUNWappserver/bin/asadmin start-domain --user admin
--passwordfile/opt/SUNWappserver/password.txt domain1

将这些文本放在一行上。前三个字母是进程的唯一指示符,可以进行更改。

重新启动节点代理的语法与此相似。例如,要重新启动安装在 opt/SUNWappserver 目录中的 Application Server 的 agent1,请使用名为 password.txt 的密码文件:


das:3:respawn:/opt/SUNWappserver/bin/asadmin start-node-agent --user admin
--passwordfile/opt/SUNWappserver/password.txt agent1

在 Microsoft Windows 平台上自动重新启动

要在 Microsoft Windows 上自动重新启动,请创建一个 Windows 服务,并防止该服务在用户注销时关闭。

创建 Windows 服务

结合使用 Sun Java System Application Server 附带的 appservService.exeappserverAgentService.exe 可执行文件以及 Microsoft 提供的 Service Control 命令 (sc.exe) 。

sc.exe 命令随 Windows XP 提供,位于 Windows 安装目录的 system32 子目录中(通常为 C:\windows\system32C:\winnt\system32 )。编写本文档时,已经可以从 ftp://ftp.microsoft.com/reskit/win2000/sc.zip 下载 Windows 2000 sc.exe。有关使用 sc.exe 的更多信息,请参见 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndllpro/html/msdn_scmslite.asp

使用 appservService.exeappservAgentService.exe,如下所示:

C:\winnt\system32\sc.exe create service-name binPath= \"fully-qualified-path-to-appservService.exe 
\"fully-qualified-path-to-asadmin.bat start-command\" 
\"fully-qualified-path-to-asadmin.bat stop-command\"" 
start= auto DisplayName= "display-name"

注 –

binpath 和等号 (=) 之间没有空格。在等号之后路径之前必须有一个空格。


例如,要创建用于启动和停止域 domain1 的名为 SunJavaSystemAppServer DOMAIN1 的服务,请使用密码文件 C:\Sun\AppServer\password.txt

C:\windows\system32\sc.exe create domain1 binPath= 
"C:\Sun\AppServer\lib\appservService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-domain --user admin --passwordfile C:\Sun\AppServer\password.txt domain1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-domain domain1\"" start= auto 
DisplayName= "SunJavaSystemAppServer DOMAIN1"

要创建用于启动和停止节点代理 agent1 的服务,请使用:

C:\windows\system32\sc.exe create agent1 binPath= 
"C:\Sun\AppServer\lib\appservAgentService.exe \"C:\Sun\AppServer\bin\asadmin.bat 
start-node-agent --user admin --passwordfile C:\Sun\AppServer\password.txt agent1\" 
\"C:\Sun\AppServer\bin\asadmin.bat stop-node-agent agent1\"" start= auto 
DisplayName= "SunJavaSystemAppServer AGENT1"

注 –

作为 binPath= 参数的一部分而输入的启动和停止命令的语法必须正确。要进行测试,请在命令提示符下运行这些命令。如果这些命令不能正确启动或停止域或节点代理,则说明该服务不能正常工作。



注 –

请勿混合使用 asadmin startstop 命令与服务启动和停止命令。否则,可能导致服务器状态不同步。例如,即使组件没有运行,服务可能也不会显示已启动组件。为避免发生这种情况,请在使用服务时始终使用 sc.exe 命令来启动和停止组件。


如果 sc.exe create 命令未正确创建服务,请删除服务,然后重试。要删除服务,请使用 sc.exe delete "service-name" 命令。

防止服务在用户注销时关闭

默认情况下,Java VM 从 Windows 捕捉指示操作系统正在关闭或者用户正在注销的信号,并关闭自身而不报告任何错误。此行为可导致 Application Server 服务在用户从 Windows 注销时关闭。要防止服务在用户注销时关闭,请设置 -Xrs Java VM 选项

要设置 -Xrs Java VM 选项,请将以下行添加到 as-install\domains\domain-name\config\domain.xml 文件中定义 Java VM 选项的部分:

<jvm-options>-Xrs</jvm-options>

如果 Application Server 服务正在运行,请先停止再重新启动该服务以使更改生效。


注 –

在某些 Windows 2003 Server 安装中,将 -Xrs 选项添加到 domain.xml 文件无法防止服务关闭。在这种情况下,请在 as-install\lib\processLauncher.xml 文件中添加该选项,如下所示:

<process name="as-service-name">
   ...
   <sysproperty key="-Xrs"/>
   ...

自动重新启动的安全性

如果使用的是群集或企业配置文件,则在自动重新启动 Application Server 时需要管理密码和主密码。如果使用的是开发者配置文件,则不需要密码。

使用以下方法之一处理群集和企业配置文件的密码和主密码要求: