Sun Java System Application Server 9.1 Update 1 和 9.1 Update 2 发行说明

管理

本节介绍已知的管理问题和相应的解决方法。

如果 domain1 不存在,package-appclient 脚本无法运行 (6171458)

说明

默认情况下,在 as-install/lib/package-appclient.xml 中有一个用于 domain1(由 asenv.conf 来指向)的 AS_ACC_CONFIG 变量的硬编码值。如果删除 domain1 并创建新域,将不会用新域名更新 AS_ACC_CONFIG 变量,从而导致 package-appclient 脚本失败。

解决方法

执行以下操作之一:

  1. 保持 domain1 不变,围绕它创建其他域。

  2. 删除 domain1 并用新域名替换 as-install/lib/package-appclient.xml 中用于 domain1 的硬编码值。

如果 domain1 不存在,则每次创建新域时,都必须执行此操作。

不支持使用其他 JMX 代理启动 Application Server (6200011)

说明

J2SE 1.4.x, 5.0 或更高版本可以在 Application Server 上进行配置。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 虚拟机中启动新的 jmx-connector 服务器。此过程的副作用是会对管理功能造成不利影响,并且 Application Server 管理控制台和命令行界面可能会产生异常结果。出现此问题的原因在于内置 jmx-connector 服务器与新的 jmx-connector 服务器之间存在一些冲突。

解决方法

如果使用 jconsole(或任何其他 JMX 兼容客户机),请考虑重新使用标准的 JMX Connector Server,它在 Application Server 启动时启动。

当服务器启动时,server.log 中将显示类似于以下所示的内容。您可以连接到其中指定的 JMXService URL,并在成功提供证书后执行相同的管理/配置操作,例如:


[#|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 9.1 Administration Guide》

无法使用任一 Web 服务的端点 URL 创建负载平衡器配置文件(6236544、6275436)

说明

如果某个应用程序具有可导出 Web 服务 URL 的 EJB 模块,则在用该应用程序设置负载平衡器配置时,Web 服务环境中的超级用户不会包含在结果文件 loadbalancer.xml 中。

解决方法

  1. 编辑 loadbalancer.xml 文件,按如下所示添加缺少的 Web 模块:


    <web-module context-root="context-root-name"
    disable-timeout-in-minutes="30" enabled="true"/>
  2. 用作为 EJB 提供的 Web 服务环境中的超级用户名称替换 context-root-name 的值。

使用 sun-appserv-admin 重新启动 Application Server 将导致 LoginException 错误 (6288893)

解决方法

  1. 将现有的 as-install/bin/asant 脚本重命名为 asant.bak

  2. as-install/lib/install/templates/ee(适用于 SE/EE 版本)中的 asant.template 文件复制到 as-install/bin/ 目录中,并将其重命名为 asant

  3. 编辑新复制的 as-install/bin/asant 脚本,用 as-install/config 替换 %CONFIG_HOME% 标记。

  4. 如果对原始 asant.bak 文件进行了任何手动更改,请将其并入新的 asant 脚本。

Application Server 文档中未介绍 .asadmintruststore 文件 (6315957)

说明

Application Server 文档中未介绍 .asadmintruststore 文件。如果服务器管理员的目录中不包含此文件,在升级该服务器上的某些应用程序时可能会出现严重错误。

解决方法

由于在访问 JMS 代理时超时,无法启动群集实例 (6523663)

说明

Application Server 群集实例的默认 MQ 集成模式为 LOCAL。如果将 Application Server 安装在长(即 "not short")位置 (PATH) 上,当群集实例启动时,imqbrokerscv.exe 会崩溃。此问题是 imqbrokersvc 中的内存分配问题。

解决方法

必须将群集实例的 JMS 服务类型从默认的 LOCAL 更改为 REMOTE。在此配置中,所有实例都指回 DAS 代理。请遵照下面的说明,以 REMOTE 模式配置群集。


注 –

使用 REMOTE 模式时,所有实例都使用一个代理 (DAS),因此当 Application Server 群集启动时,不会创建任何代理群集。有关更多信息,请参见 http://www.glassfishwiki.org/gfwiki/attach/OnePagersOrFunctionalSpecs/as-mq-integration-gfv2.txt 这一页上的第 4.1 条,第 iii 部分中的 "Auto-clustering"。上述功能将不可用!


Procedure使用命令行

开始之前

根据您的环境修改端口和密码文件。请注意,在以下说明中,群集名称为 racluster,DAS 管理端口为 5858,DAS JMS 端口为 7676

  1. 修改群集配置,将 JMS 类型更改为 REMOTE


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.type=REMOTE
  2. 创建对应于 DAS JMS 主机的 JMS 主机。


    as-install/bin/asadmin.bat create-jms-host --port 5858 --user admin --passwordfile \
    as-install/bin/password_file --target racluster --mqhost localhost --mqport 7676 \
    --mquser admin --mqpassword admin dashost
  3. 将默认的 JMS 主机设置为在上一步骤中创建的 DAS JMS 主机。


    as-install/bin/asadmin.bat set --port 5858 --user admin --passwordfile \
    as-install/bin/password_file racluster.jms-service.default-jms-host=dashost

Procedure使用管理 GUI

  1. 转至“配置”-> "cluster-name-config" ->“Java 消息服务”->“JMS 主机”。

  2. 单击“新建”以创建新的 JMS 主机,将其命名为 dashost

  3. 输入对应于 DAS JMS 服务的配置设置,默认设置如下所示:

    • 主机名:localhost

    • 端口:7676

    • 管理员用户:admin

    • 密码:admin

    根据您的 DAS JMS 服务修改这些设置。

  4. 导航回“Java 消息服务”选项卡,并将 JMS 服务类型更改为 REMOTE(默认为 LOCAL)。

  5. 从 "default-jms-host" 下拉式列表中,选择 "dashost"。

  6. 保存更改,然后启动节点代理或群集。

无法在 Netscape 8.1.3、Mozilla 1.7 和 Safari 2.0.4 浏览器中显示 jmaki 图表 (6543014)

说明

当尝试使用某些不支持的浏览器显示“日志统计信息监视”页中的图表时,可能会抛出以下错误:


Error loading jmaki.widgets.jmaki.charting.line.Widget : id=form1:jmaki_chart11
Script: http://easqelx5.red.iplanet.com:4848/resources/jmaki/charting/ \
line/component.js (line:5437).
Message: area.initialize is not a function

解决方法

使用支持的浏览器。有关 Application Server 9.1 Update 1 支持的浏览器的列表,请参阅浏览器

默认端口在每个 AS 主要发行版中都有所不同 (6566481)

说明

默认管理端口已在过去三个主要 Application Server 发行版中都有所不同。具体而言,7.x、8.x 和 9.x 中的默认管理端口如下所示:

解决方法

这不是错误,但是一个需要注意的事项。默认管理端口只是一个建议端口。希望在以后的 Application Server 版本中将保留默认 4848 端口。

在 AIX 中使用自定义主密码时 create-domain 命令失败 (6628170)

说明

在 AIX 操作系统上,尝试使用自定义主密码创建域失败,同时显示以下错误:


keytool error (likely untranslated): java.lang.NullPointerException
 Enter keystore password:  New keystore password:

Procedure解决方法:(AIX) 使用自定义主密码创建域


注 –

在接下来的过程中,仅提供每个步骤所要求的选项。如果您需要命令的其他选项,请在命令中指定这些选项。有关 Application Server 命令的信息,请参见《Sun Java System Application Server 9.1 Update 1-9.1 Update 2 Reference Manual 》


  1. 创建包含以下代码行的 shell 脚本:

    #!/bin/sh
    changeKeystorePass() {
      keytool -storepasswd -keystore ${KEYSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeTruststorePass() {
      keytool -storepasswd -keystore ${TRUSTSTORE} -storepass ${OLD} -new ${NEW}
    }
    changeKeyPass() {
      keytool -keypasswd -alias s1as -keystore ${KEYSTORE} -storepass ${NEW} -keypass ${OLD} -new ${NEW}
    }
    changeDomainPasswordEntry() {
      keytool -storepasswd -storetype JCEKS -keystore ${DOMAINPASSWORDS} -storepass ${OLD} -new ${NEW}
    }
    deleteMasterPasswordFile() {
      if [ -f ${DOMAIN_PATH}/master-password ] ; then
        echo Deleting ${DOMAIN_PATH}/master-password
        rm -f ${DOMAIN_PATH}/master-password
      fi
    }
    DOMAIN_PATH=$1
    OLD=$2
    NEW=$3
    if [ $# != 3 ] ; then
      echo Usage: $0 domain-path old-master-pass new-master-pass
      exit 1
    fi
    echo Processing ...
    if [ ! -f ${DOMAIN_PATH}/config/domain.xml ] ; then
      echo "Domain with folder ${DOMAIN_PATH} does not exist, create it first"
      exit 2
    else
      KEYSTORE=${DOMAIN_PATH}/config/keystore.jks
      TRUSTSTORE=${DOMAIN_PATH}/config/cacerts.jks
      DOMAINPASSWORDS=${DOMAIN_PATH}/config/domain-passwords
      changeKeystorePass
      changeTruststorePass
      changeKeyPass
      changeDomainPasswordEntry
      deleteMasterPasswordFile
    fi
  2. 创建域,同时指定默认主密码。


    aadmin create-domain {--adminport aminportno|--portbase portbase} domain-name
    Please enter the admin user name>admin-user
    Please enter the admin password>admin-user-password
    Please enter the admin password again>admin-user-password
    Please enter the master password [Enter to accept the default]:>
    Please enter the master password again [Enter to accept the default]:>

    默认主密码为 changeit

  3. 更改您刚创建的域的主密码。

    要更改主密码,请运行您在步骤 1 中创建的脚本。


    script-name domain-path old-password new-password
    
  4. 启动您在步骤 2 中创建的域。


    asadmin start-domain domain-name
    

    由于域具有自定义主密码,因此系统将提示您输入主密码。

  5. 键入新的主密码作为对提示的响应。

  6. 对于配置为支持群集的域,创建并启动节点代理。

    1. 为您在步骤 2 中创建的域创建节点代理。


      asadmin create-node-agent --port portno --user admin-user
      
    2. 启动您在步骤 a 中创建的节点代理。


      asadmin start-node-agent
      

      由于域具有自定义主密码,因此系统将提示您输入主密码。

    3. 键入新的主密码作为对提示的响应。

另请参见

以下 Application Server 手册页:

AIX:0403-027 参数列表过长 (6625591)

说明

在 AIX 操作系统上,某些与 OS 相关的操作可能失败并显示以下错误:


0403-027 The parameter list is too long

与 OS 相关的操作示例包括部署应用程序和运行应用程序客户机容器。

此问题通常是由 CLASSPATH 环境变量中的长文件路径引起的。

解决方法

使用以下解决方法之一:

Procedure(AIX) 增加命令行的最大长度

ncargs 属性决定命令行(包括环境变量)的最大长度。在 AIX 操作系统上,ncargs 属性的默认值为 4 个 4 千字节块。要确保 Application Server 命令不超过命令行的最大长度,请将该值增加到 16 个 4 千字节块。


注 –

更改 ncargs 属性的值后,无需重新引导或刷新守护进程。


  1. 确定 ncargs 属性的值。


    lsattr -EH -l sys0 | grep ncargs
    
  2. 如果 ncargs 属性的值小于 16 个 4 千字节块,请将该值增加到 16。


    chdev -l sys0 -a ncargs=16