Sun ONE Application Server 7 管理员指南 |
第 4 章
使用应用服务器实例本章介绍如何创建、删除、配置、启动和停止 Sun ONE Application Server 实例。
本章包括以下主题:
关于应用服务器实例安装软件的非捆绑版本时,Sun ONE Application Server 将创建一个名为 server1 的应用服务器实例。如果需要,可以删除 server1 实例,并创建一个其他名称的新实例。
如果使用的是软件的 Solaris 9 捆绑版本,则必须自行创建服务器实例。有关详细信息,请参见配置 Solaris 捆绑版。
每个应用服务器实例都具有自己的 J2EE 配置、J2EE 资源、应用程序部属区和服务器配置设置,因此对一个应用服务器实例所做的更改不会影响其他应用服务器实例。一个管理域中可以包含多个应用服务器实例。域中的所有服务器实例都具有相同的管理服务器。有关域的详细信息,请参见第 3 章“配置管理域”。
对于很多用户,一个应用服务器实例即可满足需要。但是,根据用户环境的不同,可能需要创建一个或多个附加应用服务器实例。例如,在开发环境中,可以使用不同的应用服务器实例测试不同的 Sun ONE Application Server 配置或者比较和测试不同的应用程序部署。由于添加或删除应用服务器实例很容易,因此可以在开发过程中使用这些实例创建临时“沙盒”区来进行测试。
此外,还可以为每个应用服务器实例创建虚拟服务器。在一个已安装的应用服务器实例中,您可以提供公司或个人域名、IP 地址和某些管理功能。对于用户,就好比他们拥有自己的 Web 服务器,但无需进行硬件和基础服务器的维护。这些虚拟服务器不能跨应用服务器实例使用。有关虚拟服务器的详细信息,请参见第 15 章“使用虚拟服务器”。
在操作部署中,很多情况下都可以使用虚拟服务器代替多个应用服务器实例。但是,如果虚拟服务器不能满足需求,也可以使用多个应用服务器实例。
启动和停止应用服务器实例Sun ONE Application Server 实例不会自动启动。启动某个实例后,该实例将一直运行,直到用户停止它。停止应用服务器实例后,它将不再接受新的连接,只是等待未完成的连接完成。如果计算机崩溃或脱机,服务器将退出,正在处理的所有请求都将丢失。
用户可以使用以下主题中所述的任意一种方法启动和停止应用服务器实例:
如果安装了服务器证书,Sun ONE Application Server 会在启动之前提示管理员输入密钥数据库口令。如果希望重新启动一个无人参与的 Sun ONE Application Server,则需要将该口令保存在 password.conf 文件中。仅当系统受到充分的保护时才可以执行此操作,只有这样文件和密钥数据库才不会被损坏。有关创建和使用 password.conf 的详细信息,请参见《Sun ONE Application Server Administrator's Configuration File Reference》。
注
在 UNIX 中,某些 Sun ONE Application Server 安装需要访问的内存和/或文件描述符可能比默认情况下操作系统允许访问的内存和/或文件描述符多。如果无法启动服务器,请使用 ulimit 命令检查由操作系统强加的资源限制。有关详细信息,请参见操作系统的 ulimit 手册页。
使用管理界面中的“Start”和“Stop”按钮
使用管理界面启动和停止服务器的步骤:
使用 start-instance 和 stop-instance 命令
使用命令行界面公用程序 asadmin,可以从命令提示符或脚本启动和停止应用服务器实例。可以使用 start-instance 和 stop-instance 命令。
这些命令使用以下语法:
start-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--debug=true/false] [--passwordfile file_name] [--secure | -s] instance_name
stop-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--passwordfile file_name] [--secure | -s] instance_name
这些命令包含一个 local 选项,可以使用该选项启动或停止服务器,而无需通过管理服务器。如果使用 local 选项,则无需指定 host、port、user 和 password(或 passwordfile)选项。
有关这些命令的语法的信息,请参见 asadmin 帮助。有关使用 asadmin 的信息,请参见附录 A“使用命令行界面”。
使用 Windows 服务 (Windows)
用户可以使用 Windows 中的“服务控制面板”启动服务器。
请执行以下步骤:
使用 startserv 和 stopserv 脚本
要使用 startserv 和 stopserv 脚本,请在命令行提示符下转至以下目录:
instance_dir/bin
其中 install_dir 为安装服务器的目录;domain_dir 为域目录;instance_dir 为要启动的实例的名称。
对于 UNIX,请键入:
./asadmin startserv
如果服务器在端口号小于 1024 的端口上运行,请以超级用户身份登录;否则,请以超级用户身份或使用服务器用户帐户登录。
用户可以在该行的末尾使用可选参数 -i。-i 选项在 inittab 模式下运行服务器,因此如果服务器进程终止或崩溃,inittab 会重新启动服务器。此选项还可以防止将服务器置于后台进程。
对于 Windows,请键入:
startserv
要手动停止服务器,请在命令行提示符下转至以下目录:
instance_dir/bin
其中 install_dir 为安装服务器的目录,instance_dir 为要启动的实例的名称。
对于 UNIX,请键入:
./asadmin stopserv
如果使用 /etc/inittab 文件重新启动服务器,则必须在尝试停止服务器之前从 /etc/inittab 文件中删除启动服务器的命令行并键入 kill -1 1。否则,服务器将在停止后自动重新启动。
对于 Windows,请键入:
stopserv
在调试模式下启动应用服务器实例如果开发者需要调试 J2EE 应用程序,则可以在调试模式下运行应用服务器实例。
在调试模式下启动服务器的步骤:
调试模式可以更改 JVM 设置。将“Debug Enabled”设置为 True 后,“Debug Options”将随之改变。有关 JVM 调试选项的详细信息,请参见 http://java.sun.com/products/jpda/doc/conninv.html 上的 Java Platform Debugger Options 文档。
要从命令行界面启动调试模式下的应用服务器实例,请使用 asadmin 公用程序的 start-instance 命令并将 debug 选项设置为 True。有关命令语法的详细信息,请参见命令行界面的联机帮助。
设置终止超时停止应用服务器实例后,它将不再接受新的连接,而只是等待所有未完成的连接完成。在 init.conf 文件(可以在 instance_dir/config/ 中找到该文件)中可以配置服务器在超时之前等待的时间。默认情况下,该时间设置为 30 秒。要更改该值,请将下面一行文本添加到 init.conf 文件中:
TerminateTimeout seconds
其中 seconds 代表服务器在超时之前等待的秒数。
配置此值的优点是:服务器将等待更长的时间,以便于连接完成。但是,由于服务器通常从非响应的客户机打开连接,因此增加终止超时可能会增加服务器关闭所用的时间。
自动重新启动应用服务器实例 (UNIX)可以使用下列方法之一重新启动应用服务器实例:
- 重新引导计算机时,会自动使用 /etc/rc2.d 中的守护程序重新启动。
- 手动重新启动。请参见启动和停止应用服务器实例和删除应用服务器实例。
本节包括以下主题:
关于自动重新启动
由于安装脚本无法编辑 /etc/rc.local 或 /etc/inittab 文件,因此必须使用文本编辑器对其进行编辑。如果不知道如何编辑这些文件,请向系统管理员咨询或参阅系统文档。
通常情况下,不能使用以上的任意文件来启动启用了 SSL 的服务器,因为启动之前服务器会要求输入口令。尽管可以通过将口令以纯文本格式存储在某个文件中来自动启动启用了 SSL 的服务器,但建议不要使用这种方法。
注意 将启用了 SSL 的服务器的口令以纯文本格式存储在服务器的 startserv 脚本中会带来很大的安全风险。任何可以访问该文件的用户都有权访问启用了 SSL 的服务器的口令。将启用了 SSL 的服务器的口令保存为纯文本格式之前,请考虑可能带来的安全风险。
服务器的 startserv 脚本、密钥对文件和密钥口令应属于超级用户(如果该服务器由非超级用户安装,则属于该用户帐户),并且只有所有者具有读写权限。
使用 /etc/inittab 自动重新启动 (UNIX)
要使用 inittab 重新启动服务器,请将下面一行文本添加到
/etc/inittab 文件中:http:2:respawn:install_dir/path_to_domain_dir/instance_dir/bin/startserv -start -i
其中 install_dir 为安装服务器的目录;path_to_domain_dir 为域的路径;instance_dir 为服务器的目录。
-i 选项可以防止将服务器置于后台进程。
停止服务器之前必须删除此行,否则服务器将自动重新启动。
通过系统 RC 脚本自动重新启动 (UNIX)
如果使用 /etc/rc.local 或系统的等效文件,请将下面一行文本添加到 /etc/rc.local 文件中:
install_dir/path_to_domain_dir/instance_dir/bin/startserv
将 install_dir 替换为安装服务器的目录、将 path_to_domain_dir 替换为域的路径、并将 instance_dir 替换为应用服务器实例的名称。
手动重新启动应用服务器实例 (UNIX)UNIX 中提供了手动重新启动服务器实例的选项。与先停止服务器实例然后再启动该实例的操作不同,重新启动不停止 watchdog 程序。有关 watchdog 的信息,请参见关于 Watchdog。
注
如果已通过编辑配置文件对其进行了手动更改,则必须在重新启动服务器之前应用更改,方法是:使用管理界面中的“Apply Changes”按钮,或者使用 asadmin reconfig 命令(其中将 keepmanualchanges 选项设置为 True)。有关应用更改的详细信息,请参见应用对应用服务器实例所做的更改。
在以下主题中介绍了三种重新启动服务器实例的方法:
使用“Restart”按钮重新启动服务器实例 (UNIX)
使用管理界面重新启动服务器实例的步骤:
使用 restart-instance 命令重新启动服务器实例 (UNIX)
使用命令行界面公用程序 asadmin,可以从命令行或脚本启动和停止应用服务器实例。可以使用 restart-instance 命令。此命令使用以下语法:
restart-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--local=true/false] [--domain domain_name] [--passwordfile file_name] [--secure | -s] instance_name
此命令包含一个 local 选项,可以使用该选项重新启动服务器实例,而无需通过管理服务器。
有关这些命令的语法的信息,请参见 asadmin 帮助。有关使用 asadmin 的信息,请参见附录 A“使用命令行界面”。
使用 restartserv 脚本重新启动服务器实例 (UNIX)
要使用 restartserv 脚本,请在命令行提示符下转至以下目录:
instance_dir/bin
其中 install_dir 为安装服务器的目录;domain_dir 为域目录;instance_dir 为要启动的实例的名称。
请键入:
./asadmin restartserv
如果服务器在端口号小于 1024 的端口上运行,请以超级用户身份登录;否则,请以超级用户身份或使用服务器用户帐户登录。
关于 WatchdogWatchdog(在 UNIX 中为 appserv-wdog,在 Windows 中为 appservd-wdog.exe)是 Sun ONE Application Server 附带的程序。它用于执行以下任务:
Watchdog 在后台运行,无需用户的介入。请勿对其进行配置或以其他方式进行更改。每个应用服务器实例运行一个 Watchdog(包括管理服务器)。
在 UNIX 中,每个 Watchdog 可以为原始应用服务器 (appservd) 的处理产生一个进程,该进程又会反过来产生接受请求的 appservd 进程。由于 Watchdog 进程标识将用于启动服务器,因此会显示在 instance_dir/logs 中的 pid 日志文件中。
添加应用服务器实例使用管理界面添加应用服务器实例的步骤:
有关详细信息,请参见联机帮助。
要使用命令行界面添加其他应用服务器实例,请使用 asadmin 公用程序的 create-instance 命令,该命令使用以下语法:
asadmin create-instance [--user admin_user] [--password admin_password] [--host host] [--port port] [--sysuser sys_user] [--domain domain_name] [--local=true/false] [--passwordfile file_name] [--secure | -s] --instanceport instance_port instance_name
此命令包含一个 local 选项,可以使用该选项重新启动服务器实例,而无需通过管理服务器。sysuser 选项仅适用于 UNIX 系统。
有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。
删除应用服务器实例用户可以从管理域中删除应用服务器实例。由于此操作不能撤消,因此在删除应用服务器实例之前请确保不再需要该实例。
使用管理界面从计算机中删除应用服务器实例的步骤:
有关详细信息,请参见联机帮助。
要使用命令行界面从计算机中删除应用服务器实例,请使用 asadmin 公用程序的 delete-instance 命令,该命令使用以下语法:
asadmin delete-instance [--user admin_user] [--password admin_password] [--host admin_host] [--port admin_port] [--domain domain_name] [--local=true/false] [--passwordfile file_name] [--secure | -s] instance_name
此命令包含一个 local 选项,可以使用该选项删除服务器实例,而无需通过管理服务器。
有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。
应用对应用服务器实例所做的更改使用管理界面或命令行界面更改配置信息时,系统不会立即应用所做的更改,而是将其保存在 server_instance/config/backup 目录的特定文件中。管理界面和命令行界面将显示存储在以上目录的文件中的配置值。应用更改后,更改才会生效。应用更改也称为重新配置服务器。应用更改后,自上次更改应用后对配置所做的更改将生效。请注意,重新启动实例不会自动应用更改。
如果已对要求应用更改的服务器实例配置进行了更改,左侧窗格树视图中的应用服务器实例旁边、访问服务器实例时的标题中和服务器实例主页面上将出现一个黄色图标。
图 4-1 警告图标
使用管理界面应用对应用服务器实例所做的更改的步骤:
要使用命令行界面重新配置应用服务器实例,请使用 asadmin 公用程序的 reconfig 命令,该命令使用以下语法:
asadmin reconfig --user admin_user [--password admin_password] [--host admin_host] [--port admin_port] [--passwordfile file_name] [--secure | -s] [--discardmanualchanges=true/false | --keepmanualchanges=true/false] instance_name
如果已通过手动编辑的方式对配置文件进行了更改,则在配置过程中必须使用 keepmanualchanges=true 保留编辑的内容(该选项的默认值为 False)。如果设置了 discardmanualchanges=true,则会放弃手动进行的更改。设置 discardmanulchanges=false(默认值)与设置 keepmanualchanges=true 意义不同。将 discardmanualchanges 选项设置为 False 相当于未指定该选项。
有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。
对于某些属性,需要应用更改并重新启动服务器才能使更改生效。这些属性包括在 init.conf 和 obj.conf 配置文件中设置的所有属性,以及 server.xml 中的某些属性。有关这些文件的信息,请参见《Sun ONE Application Server Administrator's Configuration File Reference》。
如果更改要求重新启动服务器实例,服务器将在服务器实例左侧窗格中的树视图旁边、访问服务器实例时的标题中和服务器实例主页面上显示黄色警告图标来警告用户。标题和页面中的消息表示需要重新启动服务器实例。重新启动服务器实例后,黄色警告图标将消失。
不要求重新启动的 server.xml 设置包括:
查看应用服务器实例状态使用管理界面,可以查看服务器已启动还是已停止以及基本的应用服务器实例设置。
查看应用服务器实例状态的步骤:
要使用命令行界面查看应用服务器实例的状态,请使用 asadmin 公用程序的 show-instance-status 命令。其状态为正在启动、已启动、正在停止或已停止。该命令使用以下语法:
asadmin show-instance-status --user admin_user [--password admin_password] [--host admin_host] [--port admin_port] [--passwordfile file_name] [--secure | -s] instance_name
有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。
配置 JVM 设置可以为应用服务器实例配置 Java 虚拟机 (JVM) 设置。这些设置包括 Java 主页的位置、编译程序选项、调试选项和事件探查器信息。配置这些设置的原因之一是为了改善性能。有关性能的详细信息,请参见《Sun ONE Application Server Performance and Tuning Guide》。
本节包括以下主题:
配置常规设置
在管理界面中配置 JVM 的常规选项的步骤:
- 在左侧窗格中,单击应用服务器实例的名称。
- 在右侧窗格中,单击“JVM”选项卡。
- 单击“General”。
- 设置 Java 主页。
Java 主页是安装 Java 开发工具 (JDK) 的目录的路径。Sun ONE Application Server 支持 Sun JDK 1.4.0_02 或更高版本。
- 选择是否启用调试并设置调试选项。
可以从 http://java.sun.com/products/jpda/doc/conninv.html#Invocation 获得调试选项的列表。
- 选择 RMIC 选项。
RMIC 选项字段用于显示在部署应用程序时传递给 RMI 编译程序的 RMIC 选项。-keepgenerated 选项用于保存为占位程序和捆绑程序生成的源代码。有关 RMIC 命令的详细信息,请参见《Sun ONE Application Server Developer's Guide to Enterprise Java Beans》。
- 单击“保存”。
配置路径设置
在管理界面中配置 JVM 的路径设置的步骤:
- 在左侧窗格中,单击应用服务器实例的名称。
- 在右侧窗格中,单击“JVM”选项卡。
- 单击“Path Settings”。
- 为系统的类路径选择后缀。
- 选择是否忽略环境类路径。
如果不忽略类路径,系统将读取 CLASSPATH 环境变量并将其附加到 Sun ONE Application Server 类路径。CLASSPATH 环境变量将被添加到类路径后缀的后面,即类路径的最后端。
对开发环境而言,应使用类路径。对生产环境而言,应忽略类路径,以防止环境变量产生不好的影响。
- 设置本地库路径的前缀和后缀。
本地库路径是应用服务器安装本地共享库的相对路径、标准 JRE 本地库路径、shell 环境设置(UNIX 中的 LD_LIBRARY_PATH)和在事件探查器元素中指定的任意路径的结构自动合并。由于这是一个合成的路径,因此不会明确地显示在服务器配置中。
- 单击“保存”。
配置 JVM 选项
在管理界面中设置 JVM 命令行选项的步骤:
有关特定的 JVM 选项的信息,请访问 http://java.sun.com/docs/hotspot/VMOptions.html。
配置 JVM 事件探查器
在管理界面中配置 JVM 事件探查器的步骤:
有关事件探查器的详细信息,请参阅《Sun ONE Application Server Developer's Guide》。
使用命令行界面配置 JVM 设置
要使用命令行界面的 asadmin 公用程序配置 JVM 设置,请使用以下命令:
从实例获取所有属性:
asadmin> get server_instance.java-config.*
获取 server1 中名为 classpathprefix 的属性:
asadmin> get server1.java-config.classpathprefix
设置 server1 中名为 classpathprefix 的属性:
asadmin> set server1.java-config.classpathprefix=com.sun
以上示例都假设已在环境变量中设置了用户、口令、主机和端口。要获得属性的完整列表,请参见附录 A“使用命令行界面”。
要使用命令行界面的 asadmin 公用程序设置 JVM 选项,请使用以下命令:
asadmin> create-jvm-options --user admin_user [--password admin_password] [--host host] [--port port] [--secure | -s] [--instance instance_name] [--profiler=true/false] (jvm_option_name=jvm_option_value)[:jvm_option_name=jvm_option_name]*
asadmin> delete-jvm-options --user admin_user [--password admin_password] [--host host] [--port port] [--secure | -s] [--instance instance_name] [--profiler=true/false] (jvm_option_name=jvm_option_value)[:jvm_option_name=jvm_option_name]*
注意:可以输入多个 JVM 选项,中间用冒号隔开。如果这些选项由事件探查器使用,请将 --profiler 设置为 True。
有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。
配置日志设置和监视设置“Logging”和“Monitoring”选项卡中的设置就是在各章中介绍的日志和监视设置。有关日志的信息,请参见第 5 章“使用日志”。有关监视和 SNMP 设置的信息,请参见第 6 章“监视 Sun ONE Application Server”。
更改应用服务器实例的高级设置应用服务器实例具有附加的设置,这些设置可以显示实例的语言环境(用于确定字符集和语言等设置)、到服务器日志文件的路径、到已部署应用程序的目录的路径以及到会话存储目录(其中存储非活动 Bean 和持久 HTTP 会话)的路径。
此外,可以启用应用程序重新装入和指定重新装入频率的轮询时间间隔。动态应用程序重新装入将自动检查应用程序是否更改,如果已更改,它将自动处理更新后的版本。一般情况下,应该在开发环境(而不是生产环境)中启用动态重新装入。轮询时间间隔用于指定应用服务器检查应用程序更新的时间间隔。
使用管理界面更改应用服务器实例设置的步骤:
要使用 asadmin 公用程序更改服务器实例的高级设置,请使用 get 和 set 命令。当获取服务器实例的所有属性时
从实例获取所有属性:
asadmin get instance_name.*
例如:
asadmin get server1.*
获取 server1 中名为 logRoot 的属性:
asadmin get server1.logRoot
为 server1 设置名为 logRoot 的属性:
asadmin set server1.logRoot=/space/log
以上例子都假设已在环境变量中设置了用户、口令、主机和端口。有关命令语法的详细信息,请参见命令行界面帮助。有关使用 asadmin 的详细信息,请参见附录 A“使用命令行界面”。