默认情况下,在 $INSTALL/lib/package-appclient.xml 中有一个用于 domain1(由 asenv.conf 来指向)的 AS_ACC_CONFIG 变量的硬编码值。如果删除 domain1 并创建新域,将不会使用新域名更新 AS_ACC_CONFIG 变量,从而导致 package-appclient 脚本失败。
执行以下操作之一:
保持 domain1 不变,围绕它创建其他域。
删除 domain1 并用新域名替换 $INSTALL/lib/package-appclient.xml 中 domain1 的硬编码值。如果 domain1 不存在,则每次创建新域时,都必须执行此操作。
无法使用 backup-domain 和 restore-domain 命令对安装的同一 Application Server 上的域进行镜像,这是由于使用不同于原始名称的其他名称不能恢复域,即使 asadmin restore-domain 命令提供了重命名域的选项。重命名备份域似乎已成功,但尝试启动重命名的域时却会失败,原因是域配置中的条目并没有更改,并且 startserv 和 stopserv 仍然使用原始域名来设置路径。
用于 restore-domain 的域名必须与用于原始 backup-domain 命令的域名相同。Application Server 8.2 中的 backup-domain 和 restore-domain 命令仅用于在同一台计算机上备份和恢复同一个域。
可以在 Application Server 上配置 J2SE 1.4.x, 5.0 或更高版本。J2SE 5.0 平台的完整功能是可以启动 JMX 代理。在服务器启动时,如果您明确设置了系统属性,此功能将被激活。
示例值包括:
name="com.sun.management.jmxremote" value="true" name="com.sun.management.jmxremote.port" value="9999" name="com.sun.management.jmxremote.authenticate" value="false" name="com.sun.management.jmxremote.ssl" value="false"
在配置了 JMX 属性并启动服务器之后,将在 Application Server VM 中启动新的 jmx-connector 服务器。此过程的副作用是会对管理功能造成不利影响,并且 Application Server 管理 GUI 和 CLI 可能会产生异常结果。出现此问题的原因在于内置 jmx-connector 服务器与新的 jmx-connector 服务器之间存在一些冲突。
如果使用 jconsole(或任何其他 JMX 兼容客户机),请考虑重新使用标准的 JMX Connector Server,它在启动 Application Server 时启动。
当服务器启动时,server.log 中将显示类似于以下所示的内容。您可以连接到其中指定的 JMXServiceURL,并在成功提供证书后执行相同的管理/配置操作,例如:
[#|2004-11-24T17:49:08.203-0800|INFO|sun-appserver-ee8.1|javax.enterprise. system.tools.admin|_ThreadID=10;|ADM1501: Here is the JMXServiceURL for the JMXConnectorServer: [service:jmx:rmi:///jndi/rmi://hostname:8686/management/ rmi-jmx-connector]. This is where the remote administrative clients should connect using the JSR 160 JMX Connectors.|#]
有关更多信息,请参阅《Sun Java System Application Server 8.2 Administration Guide》。
如果将 Web 模块指定为虚拟服务器的默认 Web 模块,并试图对其进行重新部署或取消其部署,则将会收到以下错误消息:
Trying to undeploy application from domain failed; Virtual Servers [server] have <WEB-MODULE-NAME\> as default web module. Please remove the default web module references first. ; requested operation cannot be completed Virtual Servers [server] have <WEB-MODULE-NAME\> as default web module. Please remove the default web module references first.
此时,domain.xml 处于错误状态,管理控制台可能会无法显示已部署的 Web 应用程序表。即使停止并再次启动域,仍将出现这种情况。
更改默认 Web 模块。
使用管理控制台,转至虚拟服务器页面,将默认 Web 模块更改为空或指定其他 Web 模块。
使用 CLI,通过将 domain 指定为目标来取消 Web 模块的部署。
# asadmin undeploy --target domain <WEB-MODULE-NAME\> |
现在,管理控制台应该可以正常工作了,如果需要,可以再次部署 Web 模块。
如果使用 AMX API 在 PE 上部署了某个应用程序但未对其进行引用,则 Application Server GUI 在显示该应用程序时将抛出错误。AMX 要求显式引用应用程序。例如,部署应用程序时,需要显式创建 DeployedItemRefConfig。如果为了简化部署过程而假定在 PE 中进行了引用,则将导致 Application Server GUI 出现问题。
创建资源或应用程序后,始终创建对资源或应用程序的引用。
Application Server 域/服务器未使用由相关配置的 java-config 元素的 java-home 属性指向的 JDK。
对于安装的给定服务器,appserver-installation-dir/config/asenv.conf 文件确定了 Application Server 进程针对所有域使用的 JDK 。该文件中的属性 AS_JAVA 确定了所使用的 JDK,此属性是在安装时设置的。如果安装完成后,Application Server 进程使用的是其他 JDK,则可以将该值改为指向所需的 JDK。请注意,安装的此服务器中的所有域均会受此更改影响。
不会检查对 asenv.conf 文件的手动更改的有效性,因此更改时应谨慎行事。修改 AS_JAVA 的值时,请检查产品文档以了解最低的 JDK 版本要求。
在当前 JDK 代码中,/dev/poll 选定器会将包含 8192 个 pollfd 条目的数组分配给该选定器使用。这将超出 nofiles ulimit,从而导致分配失败,并显示错误“参数无效”。selector.select() 的中断导致在启动期间连接至 MQ 的 Application Server 套接字服务失败,并抛出 IOException。
放宽对 pollfd 文件描述符的限制。有两种方法可完成此操作:
以 root 用户身份在 shell 上执行 ulimit -n 8193。
将文件描述符数目的严格限制增加为 8193 或更高:
使用 ulimit -n -H 检查严格限制。
如果小于 8193,请编辑 /etc/system,以添加 set rlim_fd_max=8193 命令。
重新引导计算机。
域的主密码包含百分比 (%) 字符时,域无法启动。
域的主密码不应包含百分比字符 (%)。创建新域或更改现有域的主密码时亦如此。
将以下内容添加到 JVM 代理设置会导致服务器无法启动:
<jvm—options>-Dhttp.proxyHost=webcache.east.sun.com</jvm—options> <jvm—options> -Dhttp.proxyPort=8080</jvm—options> <jvm—options>-Dhttp.nonProxyHosts="mssp.ctu.gov|*.ctu.gov|localhost" </jvm—options> |
插入 * 字符会导致发生“找不到类 Def”错误(线程 main java.lang.NoClassDefFoundError: com/sun/enterprise/security/store/IdentityManager 中的异常)。插入 | 字符会导致启动脚本等待服务器启动超时。
此功能对于支持驻留在防火墙后且需要访问外部和内部服务器的 Application Server 部署(和门户部署)十分重要。Portal Server URL Scraper 便是一个例子。要允许 URL Scraper 从外部源获取内容,这些设置是必需的。
编辑 install-dir/config/asenv.conf 文件,将行 AS_NATIVE_LAUNCHER="true" 更改为 AS_NATIVE_LAUNCHER="false"。