Sun Java System Application Server 7 2004Q2 发行说明

> # Sun Java™ System Application Server 标准版和企业版发行说明

> ### 版本 7 2004Q2

> 文件号码 817-7579

> 这些发行说明包含发行 Sun Java™ System Application Server 7 2004Q2 标准版和企业版产品时可以获得的重要信息。还介绍了增强功能、安装说明、已知问题以及其他最新问题。在开始使用 Sun 产品之前，请先阅读本文档和相关文档。

> 本文档包括以下各节：

> - 发行说明修订历史记录
> - 新增功能
> - 平台摘要
> - 所需的 Solaris 修补程序
> - 升级选项
> - 使用迁移工具
> - Sun ONE Studio 5 标准版 Update 1
> - 其他要求和限制
> - 访问文档
> - 已知问题和限制
> - 可重新分发的文件
> - 如何报告问题和提供反馈
> - 其他 Sun 资源

> #

> 发行说明修订历史记录

> 本节列出了初次发行 Sun Java System Application Server 7 标准版和企业版产品后对这些发行说明所做的更改。

> 修订日期 | 更改说明
> --- | ---
> 2004 年 5 月 | 初次发行 Sun Java System Application Server 7 2004Q2 标准版和企业版

> #

> 新增功能

> Sun Java System Application Server 7 2004Q2 标准版和企业版提供了高性能的 J2EE 平台，可广泛适用于各种应用服务和 Web 服务的部署。

> - 使用高可用性数据库 (HADB) 对有状态会话 Bean (SFSB) 执行检查点操作和恢复操作。
> - 沿 RMI-IIOP 路径访问的 EJB 引用和名称服务引用的负载平衡和故障转移
> - 幂等 HTTP URL 的自动重试
> - 沿 HTTP 路径处理服务器错误的特定于应用的错误页
> - 对 Sun Java System Message Queue 企业版 3.5 Service Pack 1 的认证，以支持 JMS 群集和连接故障转移
> - 增强型 asadmin 命令行界面
> - 已改善的 HTTP 负载平衡器配置文件的验证
> - 增强型群集管理命令行界面
> - 新的升级功能
> - 持久性范围 modified-attribute 经认证可以作为生产质量特征
> - 仅在用于开发时，Java Web Services Developer Pack 1.3 才可以与 Sun Java System Application Server 7 2004Q2 一起使用

> #

> 平台摘要

> 本节介绍有关 Sun Java System Application Server 7 2004Q2 标准版和企业版所支持的平台组件的信息。

> 本节包括：

> - 操作系统和分发类型
> - 系统要求
> - JDBC 驱动程序和数据库
> - Web 服务器
> - 浏览器
> - 软件包

> ## 操作系统和分发类型

> 下表标识了 Sun Java System Application Server 7 2004Q2 所支持的操作系统和分发类型：

> 表 1 支持的操作系统和分发类型

> 平台 | 操作系统版本 | 分发类型 | Application Server 7 2004Q2 版本
> --- | --- | --- | ---
> Solaris SPARC | Solaris 8 Update 7、Solaris 9 Update 6 | 基于文件和基于软件包 | 标准版和企业版
> Solaris x86 | Solaris 9 Update 4 | 基于文件和基于软件包 | 标准版和企业版
> Linux x861 | Red Hat Advanced Server 2.1 Update 3、 Red Hat Advanced Server 3 | 基于文件和基于 RPM | 标准版和企业版
> Microsoft Windows | Windows 2000 Server Service Pack 2 Windows 2000 Advanced Server Service Pack 2 Windows 2000 Professional Service Pack 2 Windows XP Professional | 基于文件 | 仅限于标准版

> 1 在 Linux 上，HADB 不能与 ext3 文件系统上的设备一起使用。
> 安装基于软件包和基于 RPM 的分发需要具有超级用户权限。

> ## 系统要求

> 下表总结了 Sun Java System Application Server 7 2004Q2 标准版和企业版的要求。

> 表 2 Sun Java System Application Server 的平台要求

> 操作系统 | 体系结构 | 最小内存 | 建议的内存 | 最小磁盘空间 | 建议的磁盘空间
> --- | --- | --- | --- | --- | ---
> 适用于 SPARC 的 Sun Solaris 8 或 Sun Solaris 9 | 32 位和 64 位 | 256 MB | 1024 MB | 250 MB 可用空间 | 500 MB 可用空间
> Solaris x86, Version 9 | 32 位
> Red Hat Enterprise Linux 2.1、Red Hat Enterprise Linux 3
> Windows 2000 Server Service Pack 2 Windows 2000 Advanced Server Service Pack 2 Windows 2000 Professional Service Pack 2 Windows XP Professional | Intel 32 位

> 在 UNIX 上，可以使用 uname 命令查看操作系统版本。可以使用 df 命令查看磁盘空间。

> ## JDBC 驱动程序和数据库

> Sun Java System Application Server 标准版和企业版支持使用相应的 JDBC 驱动程序连接任何 DBMS。有关经 Sun 测试发现适合构建符合 J2EE 规范的数据库配置的组件列表，请参见下表：

> 表 3 支持的 JDBC 驱动程序

> JDBC 供应商 | JDBC 驱动程序类型 | 支持的数据库服务器
> --- | --- | ---
> PointBase 4.2 | 类型 4 | PointBase Network Server 4.2
> JConnect 5.5 | 类型 4 | Sybase ASE 12.5
> DataDirect 3.2 | 类型 4 | MS SQL Server 2000 Service Pack 1
> DataDirect 3.2 | 类型 4（瘦型） | Oracle 8.1.7
> DataDirect 3.2 | 类型 4（瘦型） | Oracle 9.2.0.1
> DataDirect 3.2 | 类型 2 (OCI) | Oracle 9.2.0.3+ w/ RAC
> IBM | 类型 2 | IBM DB2 8.1 Service Pack 3

> 另有其他驱动程序已通过 JDBC 驱动程序认证计划的测试，证明满足 J2EE 1.3 平台的 JDBC 要求。这些驱动程序可用于 JDBC 与 Sun Java System Application Server 的连接。尽管 Sun 未提供对这些驱动程序的产品支持，但是我们将支持在 Sun Java System Application Server 中使用这些驱动程序。

> ## Web 服务器

> 本小节列出了 Sun Java System Application Server 7 2004Q2 标准版和企业版所支持的 Web 服务器。

> 表 4 支持的 Web 服务器

> Web 服务器 | 版本 | 操作系统
> --- | --- | ---
> Sun Java System Web Server | 6.0 Service Pack 6 | Solaris SPARC 8 和 Solaris SPARC 9 Red Hat Enterprise Linux 2.1 x86
> Sun Java System Web Server | 6.1 | Solaris SPARC 8 和 Solaris SPARC 9、 Solaris 9 x86、 Red Hat Enterprise Linux 2.1 x86
> Apache Web Server | 1.3.29 | Solaris SPARC 8 和 Solaris SPARC 9、 Solaris 9 x86、 Red Hat Enterprise Linux 2.1 x86、Red Hat Enterprise Linux 3 x86
> Microsoft IIS | 5.0 | Windows 2000 Server Service Pack 2 Windows 2000 Advanced Server Service Pack 2 Windows 2000 Professional Service Pack 2 Windows XP Professional（仅限于 Application Server 的标准版）

> ## 浏览器

> 本小节列出了 Sun Java System Application Server 7 2004Q2 标准版和企业版所支持的浏览器。

> 表 5 支持的浏览器

> 浏览器 | 版本
> --- | ---
> Netscape Navigator | 4.79, 6.2
> Internet Explorer | 5.5 Service Pack 2, 6.0

> ## 软件包

> 本小节列出了 Sun Java System Application Server 7 2004Q2 标准版和企业版所支持的关联软件包。

> 表 6 可绑定到 Application Server 的组件版本

> 组件 | 在 Application Server 7.0 平台版和标准版中使用的版本 | 在 Application Server 7.0 企业版中使用的版本 | 在 Application Server 7 2004Q2 标准版和企业版中使用的版本
> --- | --- | --- | ---
> J2SE | 1.4.0_02 | 1.4.1_03 | 1.4.2_04
> PointBase | 4.2 | n/a | 4.2（仅限于标准版）
> Sun Java System Message Queue 标准版 | 3.0.1 | 3.0.1 | 3.5 Service Pack 1

> #

> 所需的 Solaris 修补程序

> Solaris 8 用户必须安装 Sun 推荐的修补程序集，可以在“建议的安全修补程序”部分找到此修补程序集，网址为：

> http://sunsolve.sun.com/

> Solaris 8 所需的修补程序包括 109326-06、108827-26 以及 110934（可以是任何版本，仅用于基于软件包的安装）。如果没有安装这些修补程序（安装程序将检查这些修补程序是否存在），将无法安装或运行 Sun Java System Application Server 7 2004Q2 软件。这些修补程序已包含在最新的建议修补程序集中。

> #

> 升级选项

> Sun Java System Application Server 7 2004Q2 标准版和企业版安装程序允许从 Application Server 的早期版本升级到当前版本。支持的所有平台上的各种 Application Server 安装都可以升级到同一平台和安装类型的相应版本。下表标识了可用的升级选项。

> 表 7 可用的升级选项

> 当前安装的产品 | 可以升级到 Sun Java System Application Server 7 2004Q2 的版本：
> --- | ---
> Sun ONE Application Server 7.0 平台版 | 标准版 企业版
> Sun ONE Application Server 7.0 标准版、Update 1、Update 2 和 Update 3 | 标准版 企业版
> Sun ONE Application Server 7.0 企业版 | 企业版

> 升级 Application Server 安装时应注意以下几点：

> - 只有基于软件包的 Sun ONE Application Server 7.0 以及更新版的安装才可以升级到相应的基于软件包的 Sun Java System Application Server 安装。
> - 对于基于文件的安装，安装的产品注册表用于收集与安装的 Application Server 产品相关的信息。
> - 升级安装选项仅在使用图形界面安装方式和命令行安装方式时才可用，而不支持使用无提示模式升级。

> #

> 使用迁移工具

> 如果某个现有 J2EE 应用程序在其他供应商的应用服务器上运行，那么可以使用 Sun Java System 迁移工具迁移该应用程序，然后在 Sun Java System Application Server 7 2004Q2 版本上运行。迁移后的应用程序将在 Sun Java System Application Server 7 2004Q2 版本上运行，而不必进行任何修改。但是，要使用高可用性功能，需要更改 sun-ejb-jar.xml 部署描述符的 DTD 版本，使其指向 sun-ejb-jar_2_0-1.dtd 而不是 sun-ejb-jar_2_0-0.dtd。

> #

> Sun ONE Studio 5 标准版 Update 1

> 可与 Sun Java System Application Server 一起使用的 Sun ONE Studio 5 标准版产品有自己的文档，可以在以下网址找到：

> http://docs.sun.com/db/prod/java.studio

> #

> 其他要求和限制

> 安装 Sun Java System Application Server 软件之前，必须满足以下附加要求：

> - 对于所有平台
> - 对于 UNIX
> - 对于 Microsoft Windows

> ## 对于所有平台

> - 可用空间 — 临时目录中必须至少有 100 MB 的可用空间。

> 在 UNIX 上，可以使用 df 命令查看磁盘空间。

> - 可用端口 — 在所有平台上，必须具有四个未使用的端口。
> - 在安装过程中，需要为管理服务器分配一个端口，为 HTTP 服务器默认实例分配另一个端口。
> - 安装程序将检测已使用的端口，并为以下两个项目分配端口：Sun Java System Message Queue（默认为 7676）和 IIOP（默认为 3700）。如果这两个默认端口中的任何一个处于使用状态，安装程序将分配下一个可用端口（例如 7677 或 7678 等）。
> - 使用 uninstall 程序 — 如果要从系统中删除 Sun Java System Application Server，必须使用随 Sun Java System Application Server 软件一起安装的 uninstall 程序。如果尝试使用其他方法，则在试图重新安装同一版本或安装新版本时将出现问题。

> ## 对于 UNIX

> - 超级用户权限 — 对于基于软件包的 Solaris SPARC 和 Solaris x86 分发，必须对目标计算机具有超级用户权限。

> 以超级用户身份进行安装时，请注意以下问题：

> - 对于基于文件的分发 — 可以以超级用户身份安装多个 Sun Java System Application Server，只要每次安装的安装目录不同即可。
> - 对于所有分发 — 可以在同一安装内运行多个实例。
> - 增强型操作系统 — 是指为提高安全性而删除了某些功能的操作系统。这种操作系统通常不允许在环境中运行基于 GUI 的应用程序。在增强型操作环境中，安装和使用 Sun Java System Application Server 7 需要以下两个库：
> - libC.so.5
> - libCrun.so.1

> 这两个库可以通过安装 SUNWlibC (Sun Workshop Compilers Bundled libC) 软件包来获得，该软件包包含在最终用户软件包群集中（而非核心软件包中）的 Solaris 分发中。

> - 为使系统更加安全，应执行 chmod 700 以保护重要目录。
> - 启动以前安装的服务器 — 如果目标计算机上有以前安装的应用服务器或 Web 服务器，则在开始 Sun Java System Application Server 安装过程之前必须启动这些服务器。这样，安装程序才能检测到已使用的端口，从而避免再将它们分配给其他用途。

> ## 对于 Microsoft Windows

> - 管理员权限 — 要在 Microsoft Windows 上安装 Sun Java System Application Server 软件，必须具有管理员权限。
> - SNMP — 安装 Sun Java System Application Server 软件之前，必须安装 SNMP 服务，否则 SNMP 子代理的安装将失败。
> - 关闭防火墙或防病毒程序 — 安装 Sun Java System Application Server 软件之前，必须关闭防火墙或防病毒软件，这是因为某些这类软件默认禁用所有端口。Sun Java System Application Server 安装程序必须能够准确确定哪些端口可用。
> - 在一台给定的 Microsoft Windows 计算机上，只能安装一个 Sun Java System Application Server。
> - 在 Microsoft Windows 上仅能安装 Sun Java System Application Server 的标准版（即不能在 Windows 上安装企业版）。

> #

> 访问文档

> Sun Java System Application Server 文档可通过多种方式获得：

> - 手册 — 可以在以下位置查看和下载 HTML 格式及可打印的 PDF 格式的 Sun Java System Application Server 手册和发行说明：

> http://docs.sun.com/db/coll/

> - 联机帮助 — 在图形界面上单击“帮助”按钮可以启动与上下文相关的帮助窗口。
> - 手册页 — 要在命令行查看手册页，必须先将 install_dir/man 添加到 MANPATH 环境变量中（仅限于 Solaris 非捆绑版本）。设置该变量后，可以通过在命令行键入 man command_name 来访问 Sun Java System Application Server 命令的手册页。例如：

> man asadmin

> ## Sun Java System Application Server 7 2004Q2 文档

> Sun Java System Application Server 7 2004Q2 标准版和企业版手册的形式为可移植文档格式 (PDF) 或超文本标记语言 (HTML) 格式的联机文件。

> 下表列出了 Sun Java System Application Server 手册中所介绍的任务和概念。标有（已针对 7 2004Q2 版进行了更新）的手册已针对 Sun Java System Application Server 7 2004Q2 标准版和企业版进行了更新。无此标记的手册自发行第 7 版企业版至今一直没有进行更新。

> 表 8 Sun Java System Application Server 文档指南

> 有关信息 | 请参见
> --- | ---
> 已针对 7 2004Q2 版进行了更新 — 有关软件和文档的最新信息。其中包括以表格形式对所支持的硬件、操作系统、JDK 和 JDBC/RDBMS 所做的全面概述。 | 《发行说明》
> Sun Java System Application Server 体系结构的示意图和说明，以及此服务器体系结构方法的优点。 | Server Architecture
> 已针对 7 2004Q2 版进行了更新 — 如何开始使用 Sun Java System Application Server 产品。其中包括一个样例应用程序教程。 | 《标准版和企业版入门指南》
> 已针对 7 2004Q2 版进行了更新 — 安装 Sun Java System Application Server 标准版和企业版软件及其组件，例如样例应用程序和管理界面。对于企业版软件，提供了实现高可用性配置的指导。 | 《安装指南》
> 已针对 7 2004Q2 版进行了更新 — 评估系统需求和企业状况，确保以最适合您的站点的方式来部署 Sun Java System Application Server。此外还介绍了部署应用服务器时应该注意的常见问题。 | System Deployment Guide
> 创建和实现要在 Sun Java™ System Application Server 上运行的 Java 2 Platform, Enterprise Edition（J2EE™ 平台）应用程序，这些应用程序遵循针对 J2EE 组件，例如 Servelet、Enterprise JavaBeans™ (EJB™) 和 JavaServer Page™ (JSP™) 的开放式 Java 标准模型。其中包括有关应用程序设计、开发者工具、安全性、汇编、部署、调试和创建生命周期模块的一般信息。此外还包括 Sun Java System Application Server 综合词汇表。 | Developer's Guide
> 在 Sun Java System Application Server 上创建和实现 J2EE Web 应用程序，这些应用程序遵循 Java Servlet™ 和 JavaServer Page (JSP) 规范。介绍 Web 应用程序编程概念和任务，并提供样例代码、实现提示和参考资料。其中包括以下主题：结果缓存、JSP 预编译、会话管理、安全性、部署、SHTML 和 CGI。 | Developer's Guide to Web Applications
> 已针对 7 2004Q2 版进行了更新 — 在 Sun Java System Application Server 上创建和实现 J2EE 应用程序，这些应用程序遵循企业 Bean 的开放式 Java 标准模型。介绍 Enterprise JavaBeans (EJB) 编程概念和任务，并提供样例代码、实现提示和参考资料。其中包括以下主题：容器管理的持久性、只读 Bean 以及与企业 Bean 关联的 XML 和 DTD 文件。 | Developer's Guide to Enterprise JavaBeans Technology
> 已针对 7 2004Q2 版进行了更新 — 在 Sun Java System Application Server 上创建访问 J2EE 应用程序的应用程序客户机容器 (ACC) 客户机。 | Developer's Guide to Clients
> 在 Sun Java System Application Server 环境中创建 Web 服务。 | Developer's Guide to Web Services
> Java™ Database Connectivity (JDBC™)、事务、Java Naming and Directory Interface™ (JNDI)、Java™ Message Service (JMS) 和 JavaMail™ API。 | Developer's Guide to J2EE Services and APIs
> 创建自定义 NSAPI 插件。 | Developer's Guide to NSAPI
> 已针对 7 2004Q2 版进行了更新 — 有关从管理界面和命令行界面配置、管理和部署 Sun Java System Application Server 子系统和组件的信息与指导。其中包括以下主题：群集管理、高可用性数据库、负载平衡和会话持久性。此外还包括 Sun Java System Application Server 综合词汇表。 | 《管理指南》
> 编辑 Sun Java System Application Server 配置文件，例如 server.xml 文件。 | Administrator's Configuration File Reference
> 配置和管理 Sun Java System Application Server 操作环境的安全性。其中包括有关一般安全性、证书和 SSL/TLS 加密的信息。同时还介绍了基于 HTTP 服务器的安全性。 | Administrator's Guide to Security
> 为 Sun Java System Application Server 配置和管理 J2EE™ 连接器体系结构 (CA) 连接器的服务提供者实现。其中包括以下主题：管理工具、池监视器、部署 JCA 连接器，以及样例连接器和样例应用程序。 | J2EE CA Service Provider Implementation Administrator's Guide
> 已针对 7 2004Q2 版进行了更新 — 将应用程序迁移到新的 Sun Java System Application Server 编程模型，特别是从 iPlanet Application Server 6.x 和 Sun ONE Application Server 7.0 进行迁移。其中包含一个迁移样例。 | Migrating and Redeploying Server Applications Guide
> 已针对 7 2004Q2 版进行了更新 — 调整 Sun Java System Application Server 来提高性能的方法和原因。 | Performance Tuning Guide
> 已针对 7 2004Q2 版进行了更新 — 有关解决 Sun Java System Application Server 问题的信息。 | Troubleshooting Guide
> 已针对 7 2004Q2 版进行了更新 — 在运行 Sun Java System Application Server 时可能出现的消息。其中包括对于可能原因的说明，以及关于如何找到产生消息的条件的指导。 | Error Message Reference
> 已针对 7 2004Q2 版进行了更新 — 适用于 Sun Java System Application Server 的实用程序命令（以手册页样式编写）。 | Utility Reference Manual
> 使用 Sun™ Open Net Environment (Sun ONE) Message Queue 3.5 软件。 | Sun ONE Message Queue 文档，网址为： http://docs.sun.com/db?p=prod/s1.s1msgqu

> #

> 已知问题和限制

> 本节介绍 Sun Java System Application Server 7 2004Q2 标准版和企业版的已知问题和相应的解决办法。

> 注意 | 如果对某个问题的陈述未指明特定平台，则说明所有平台都可能出现该问题。

> 本节信息又分为以下几个小节：

> - 安装与卸载
> - 启动与关闭服务器
> - 数据库驱动程序
> - 日志记录
> - Web 容器
> - 消息服务和消息驱动 Bean
> - Java 事务服务 (JTS)
> - 应用程序部署
> - 验证器
> - 负载平衡器
> - 高可用性
> - 服务器管理
> - 样例应用程序
> - ORB/IIOP 侦听器
> - 文档

> ## 安装与卸载

> 本小节介绍已知的安装和卸载问题以及相应的解决方法。

> ID | 摘要
> --- | ---
> 4742038 | 如果安装目录包含非字母数字字符，则 Application Server 将不启动。 如果安装目录包含 #、空格或其他任何非字母数字字符，则 Application Server 将无法启动。在此情况下，将不创建服务器日志文件。Application Server 安装目录只能包含下列字符：字母数字、-（破折号）或 _（下划线）。在安装过程中输入现有 Java 2 SDK 目录时也应遵循此规则。 解决办法 在安装过程中，指定名称中只包含字母数字、破折号或下划线字符的目录。
> 4742828 | 无提示安装程序不检查用户权限。 尽管交互式安装程序（GUI 或命令行）将检查用户是否具有适当的权限（是否为 UNIX 超级用户），但在无提示安装过程中不进行此检查。这样，后续安装会因为用户没有足够的软件包安装权限而失败。 解决办法 确保以适当的用户身份运行无提示安装。
> 4746410 | 在 Solaris 中，当在非默认位置安装 Application Server 时，基于软件包的安装程序会不检查适当位置的磁盘空间。 当在 Solaris 中的非默认位置安装 Application Server（使用基于软件包的安装程序）时，安装程序将不检查指定的目标目录中的磁盘空间，而是只检查默认目录位置 (/opt) 中的磁盘空间。 解决办法 在开始安装之前，确保 /opt 中具有足够的磁盘空间 (85 MB)，即使并不打算在 /opt 中进行安装。此外，确保目标目录中也具有足够的磁盘空间 (85 MB)。
> 4754824 | 在 Solaris 中，从 CD 上运行安装时出现错误消息。 将一个卷插入 CD-ROM 驱动器时，Solaris 卷管理会将下一个符号名分配给该卷。例如，如果有两个 CD-ROM 都与默认的正则表达式相匹配，那么它们将被命名为 cdrom0 和 cdrom。任何与添加的正则表达式相匹配的 CD-ROM 都会从 cdrom2 开始命名。此规则记录在 vold.conf 手册页上。每次从 CD 安装 Application Server 时，CD-ROM 安装点都会在标签名后附加一个数字。第一次安装 CD 时，一切都顺利进行。但在后续安装中，安装程序启动时会显示以下错误消息： IOException:java.io.FileNotFoundException:/cdrom/appserver7（装入默认的 flavormap.properties 文件 URL:file:/cdrom/appserver7#4/AppServer7/pkg/jre/lib/flavormap.properties 时，无此文件或目录） 解决办法 尽管安装程序的功能不会受任何影响。但仍可以使用以下办法解决： 在命令提示符下输入 su 命令以及超级用户口令，或者以超级用户身份登录，从而成为超级用户。命令提示符将更改为井号 (#)。 如果 /cdrom 目录尚不存在，则输入以下命令创建该目录： # mkdir /cdrom 安装 CD-ROM 驱动器。 注意：vold 进程管理 CD-ROM 设备并执行安装。CD-ROM 可能会自动被安装到 /cdrom/cdrom0 目录中。 如果正在运行文件管理器，会出现一个单独的文件管理器窗口，显示 CD-ROM 的内容。 如果 /cdrom/cdrom0 目录由于未安装 CD-ROM 而为空，或者如果文件管理器未打开显示 CD-ROM 内容的窗口，则输入以下命令来验证 vold 守护程序是否正在运行： # ps -e | grep vold | grep -v grep 如果 vold 正在运行，则系统将显示 vold 的进程标识号。请键入以下命令终止此守护程序： # ps -ef | grep vold | grep -v grep 输入以下命令停止 vold 进程： # kill -15 process_ID_number 手动安装 CD-ROM： # mount -F hsfs -r ro /dev/dsk/cxtyd0sz /cdrom/cdrom0 其中 x 是 CD-ROM 驱动器控制器编号，y 是 CD-ROM 驱动器 SCSI ID 号，z 是 CD-ROM 所在分区的分片。 这样就安装了 CD-ROM 驱动器。有关安装步骤，请参见“在 Solaris 上安装和设置 CD 1”。
> 4757687 | 在 Solaris 中，在先前安装了 Administration Client 组件的系统上增量式安装 Application Server 组件会使安装不可用。 此问题会影响基于软件包的 Solaris 安装。如果在已经安装了独立 Administration Client 组件的系统上安装 Application Server 组件，并选择不同于最初安装 Administration Client 的目录，则最终的 Application Server 安装将不可用，即使报告安装已经成功。这是因为系统将检测到系统上已经安装了 Administration Client Solaris 软件包，因此这些软件包将不会作为 Application Server 安装过程的一部分进行安装。这样，就缺少了对产品功能至关重要的文件。 解决办法 尝试在同一 Solaris 系统上安装 Application Server 之前，先卸载独立的 Administration Client。 或者，也可以尝试进行增量式安装，但应将 Administration Client 的安装目录用于后续的 Application Server 安装。
> 4976715 | 在 Microsoft Windows 上，安装日志文件中出现了不需要的语句。 在 Microsoft Windows 平台上进行的 Sun Java System Application Server 7 标准版安装进程将在由环境变量 %TEMP% 所定义的目录下生成详细的安装日志。该日志文件名为 Sun_Java_System_Application_Server_install.b<timestamp>。该日志文件中包括安装进程有关的有用信息，还会显示语句“继续进行多 CD 安装”。 解决办法 可以忽略日志文件中的这些消息，这样做是安全的。
> 5006942 | 在 Windows 中，所创建的服务在升级后其启动类型被默认设置为“自动”。 解决办法 1. 打开 Windows 服务。 2. 将服务器的启动类型更改为“手动”。
> 5018162 | 如果在 Linux 上执行的是完全安装，并且已经安装了可用的 Message Queue，那么将安装两个 Message Queue 软件包。 解决办法 由于 Linux RPM 实用程序 4.2.1.xx 中存在一个错误，因此无法识别已安装的 Sun ONE Message Queue（标识为 imq）RPM。由于此原因，Application Server 安装程序将另外安装一个 Sun ONE Message Queue RPM。要解决此问题，或者在系统上安装 RPM 的 4.2.0.69 版本，或者在安装 Application Server 之前卸载 Message Queue。 除非在以前的 Linux 系统版本中升级了 RPM 软件包，否则通常 Red Hat Enterprise Linux Advanced Server 3.0 中存在的是 RPM 的 4.2.1.xx 版本。
> 5025063 | 在 Linux 和 Solaris 上，对 Sun Java System Web Server 6.0 进行基于文件的负载平衡器安装时，该实例没有启动，并在日志中显示一则错误。 这是因为 Web Server 6.0 没有附带 ICU 库。 解决办法 安装负载平衡器插件之后，运行以下命令： ln -s appserverinstalldir/lib/libicu webserverinstalldir/bin/https/lib Web 服务器实例将成功启动。 如果 Web 服务器与 Application Server 位于不同的计算机上，则将 appserverinstalldir/lib/libicu 复制到 Web 服务器所在的计算机上，并建立软链接。
> 5027250 | 由于用户是非超级用户，因此无提示安装失败。 如果将 Application Server 安装中的状态文件用于无提示安装，并且该安装是由非超级用户执行的，那么安装将失败并显示以下消息：“未选择可进行安装的组件。组件列表为空，或者包含已经安装的组件。” 解决办法 3. 打开状态文件进行编辑。 4. 将以“INSTALLED_AS_COMPONENTS”开头的行转换为注释行。 5. 使用修改后的状态文件再次执行无提示安装。

> ## 启动与关闭服务器

> 本小节介绍已知的启动和关闭服务器的问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4762420 | 防火墙规则可能会导致 Application Server 启动失败。 如果安装了个人防火墙，就可能会遇到此问题。如果在安装 Application Server 的计算机上存在着严格的防火墙规则，则可能会导致管理服务器和应用服务器实例启动失败。特别要说明的是，管理服务器和应用服务器实例将尝试在 Application Server 环境中建立本地连接。由于这些连接尝试使用系统的主机名而不是本地主机的主机名来访问端口，因此本地防火墙规则可能会阻止此类尝试。 本地防火墙可能还会意外生成警告，声明发生了“Portal of Doom Trojan”攻击（例如，在端口 3700 上进行的 TCP 连接尝试）或类似的攻击，而实际上此类访问尝试是由 Application Server 进行的，它们对计算机不会构成任何安全威胁。在某些情况下，Application Server 用于各种本地通信的端口号可能与已知的常见攻击中使用的端口号相同。发生此问题时将出现以下情况： 管理和服务器实例日志文件包含连接异常，其后将显示此消息：CORE3186: 无法设置配置 解决办法 修改防火墙策略，以便允许 Application Server 尝试连接到本地系统中的端口。 要避免发出提示可能发生攻击的不准确警报，可以修改相关的规则，或更改 Application Server 所使用的冲突的端口号。 要确定管理服务器和应用服务器实例使用的端口号，请参见 server.xml 文件，该文件位于 Application Server 安装的以下位置： domain_config_dir/domain1/admin-server/config/server.xml domain_config_dir/domain1/server1/config/server.xml 其中 domain_config_dir 是初始服务器配置的位置。例如： Solaris 9 集成安装：/var/appserver/domains/... Solaris 8、Solaris 9 非捆绑安装：/var/opt/SUNWappserver7/domains/... 查找 <iiop-listener> 和 <jms-service> 元素中的端口设置。可以将这些端口号更改为其他未使用的端口号，也可以修改防火墙策略以允许本地计算机上的客户机尝试连接到同一台计算机上的这些端口号。
> 5003245 | 服务器在重新配置端口并重新启动之后在两个端口上进行侦听。 解决办法 更改端口号后，使用 asadmin 命令（分别使用 asadmin stop-instance 命令以及 asadmin start-instance 命令）停止服务器，然后启动服务器。

> ## 数据库驱动程序

> 本小节介绍已知的数据库驱动程序问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4700531 | 在 Solaris 中，出现了 ORACLE JDBC 驱动程序错误。 这将影响与 JDK1.4 一起使用的、用于 Oracle® 的新 JDBC 驱动程序。此问题是由于同时使用 Oracle 9.1 数据库和 ojdbc14.jar 而引起的。应用修补程序可修复运行 Oracle 9.0.1.3 数据库的 Solaris 32 位计算机上的问题。 解决办法 从 Oracle Web 站点获取针对错误 2199718 的修补程序并将其应用于服务器。请执行以下步骤： 1. 转到 Oracle Web 站点。 2. 单击“修补程序”按钮。 3. 在修补程序编号字段中键入 2199718。 4. 单击 32 位 Solaris OS 修补程序。转到 Metalink.oracle.com。 5. 单击修补程序。 6. 在修补程序编号中输入 2199718。 7. 单击 32 位 Solaris OS 修补程序。
> 4991065 | 必须正确配置 Oracle JDBC 驱动程序以便与 J2EE 1.3 兼容。 解决办法 对类型 2 和类型 4 驱动程序应用以下配置： 1. 使用 9.2.0.3 或更高版本的 JDBC。 2. Oracle 数据库的参数 (init.ora) 文件中应具有 compatible=9.0.0.0.0。 3. 使用 ojdbc14.jar 文件。 4. 配置 Application Server 以定义以下 JVM 特性： -Doracle.jdbc.J2EE13Compliant=true 此外，对于类型 2 驱动程序，必须在启动 Application Server 的环境中定义 ORACLE_HOME 和 LD_LIBRARY_PATH（必须包括 $ORACLE_HOME/lib）。例如，将它们添加到 asenv.conf 文件并确保将其输出。

> ## 日志记录

> ID | 摘要
> --- | ---
> 5014017 | Appclient 日志记录服务不能正常工作 文件属性的默认值将不起作用。 解决办法 1. 创建日志目录。 2. 在 sun-acc.xml 文件中指定新创建的日志目录的完整路径。 在将日志记录到控制台的情况下，日志级别始终为“INFO”，而与日志级别设置（FINE、FINEST 等）无关。 适用于客户机的《管理指南》中指明日志位于 acc_dir/logs/client.log 中，但您必须创建日志目录，然后在 sun-acc.xml 文件中指定该目录的完整路径，从而使其发挥作用。

> ## Web 容器

> 本小节介绍已知的 Web 容器问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4951476 | 安装 JWSDP 1.2(1.3) 时抛出 javax.ejb.EJBException:org/dom4j/Element 异常。 解决办法 向 server.xml 文件中的 server-classpath 添加 dom4j-full.jar。该文件可以从 http://dom4j.org 下载，并应添加到 server-classpath 中的 appserv-jstl.jar 条目之前。
> 4968905 | 多个 HADB 事务中止异常 当存在大量需处理的事务时，系统可能会报告错误消息，指出无法将事务提交到 HADB。server.log 中的错误消息：java.ip.IOException:HA 存储出现错误:HADB-E-00209:事务被中止。 解决办法 将在下一版本中修复。
> 4997770 | HTTP 404 错误消息仍旧显示“Sun ONE Application Server” 将“Sun ONE Application Server”理解为 Sun Java System Application Server。

> ## 消息服务和消息驱动 Bean

> 本小节介绍已知的 Java 消息服务 (JMS)、Sun Java System Application Server 标准版和企业版 以及消息驱动 Bean 方面的问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4683029 | 如果值包含空格，那么所有 MQ Solaris 脚本中的 -javahome 标志都将不起作用。 Sun ONE Message Queue 中的命令行实用程序包含一个 -javahome 选项，使您可以指定替代的 Java 运行时。使用此选项会暴露一个局限性，即所指定的替代 Java 运行时路径不能包含空格。以下是包含空格的路径示例： /work/java 1.4 启动 Application Server 实例时会出现此问题。启动 Sun ONE Application Server 实例时，默认情况下也将启动相应的 Sun ONE Message Queue 代理实例。该代理始终使用 -javahome 命令行选项启动，以确保与 Application Server 使用相同的 Java 运行时。如果配置为由 Application Server 使用（因此被传递以供代理使用）的 Java 运行时所在的路径包含空格，则代理启动将失败，同时导致 Application Server 实例启动失败。 解决办法 确保 Application Server 所使用的 Java 运行时所在的路径不包含空格。

> ## Java 事务服务 (JTS)

> 本小节介绍已知的 Java 事务服务 (JTS) 问题和相应的解决办法。

> ### 恢复

> 某些 JDBC 驱动程序的恢复实现中存在一些已知的问题。对于这些已知的问题，Sun Java System Application Server 提供了一些解决办法。默认情况下不会使用这些解决办法，除非用户明确指示要使用这些解决办法。

> - Oracle® JDBC 驱动程序的问题 — Oracle XA Resource 实现的恢复方法重复返回同一组不确定的 Xid，不管输入标志为何。根据 XA 规范，事务管理器应首先通过 TMSTARTSCAN 调用 XAResource.recover，然后反复通过 TMNOFLAGS 调用 XAResource.recover，直到不再返回 Xid 为止。

> Oracle XA Resource 的提交方法也存在一些问题，这些问题已在 Application Server 提供的解决办法中得到了解决。要采用该解决办法，应向 server.xml 文件的 transaction-service 子元素中添加以下特性：oracle-xa-recovery-workaround

> 此特性值应设置为 True。

> - Sybase JConnect 5.2 的问题 — JConnect 5.2 驱动程序存在一些已知问题，这些问题已在 JConnect 5.5 中得到了解决。如果使用 JConnect 5.2 驱动程序恢复工作，应向 server.xml 文件的 transaction-service 子元素中添加以下特性：

> sybase-xa-recovery-workaround

> 此特性值应设置为 True。

> ### 事务

> 在 server.xml 文件中，res-type 用于区分连接是非 XA 还是 XA。此区分用于标识数据源的配置以驱动数据。例如，在 Datadirect 驱动程序中，同一数据源既可以用作 XA 也可以用作非 XA。

> 数据源的默认行为是非 XA。要使用事务的 connpool 元素将数据源行为设置为 XA，则需要使用 res-type。要使 connpool 元素起作用并参与事务，请在 server.xml 文件中为 res-type 属性添加以下内容：

> res-type="javax.sql.XADataSource"

> ## 应用程序部署

> 本小节介绍已知的应用程序部署问题和相应的解决方法。

> ID | 摘要
> --- | ---
> 4725147 | 无法选择特定虚拟服务器进行部署。 在此情况下，两个虚拟服务器被配置为使用完全相同的主机和侦听器。如果仅对第二个虚拟服务器部署应用程序，则无法到达该服务器，因为 host:port 组合会指向第一个虚拟服务器。 解决办法 虚拟服务器主机名应当与原始主机名不相同，尤其是在使用了同一 HTTP 侦听器的情况下。
> 4994366 | ejb-local-ref 与 ejb-link 的部署错误。 解决办法 ejb-local-ref 需要 ejb-link，因此在处理 ejb-local-ref 时，必须指定一个 ejb-link 值。
> 4744128 | EJB 编译器无法生成适用于内部类的有效 JAVA 代码。 EJB 编译器无法生成适用于企业 Bean 实现（使用内部类作为返回类型）的有效 JAVA 代码。 public interface IStateServer { .... public StateProperties getProperties(String objectID, String variantName, IToken securityToken) throws RemoteException; public class StateProperties implements Serializable { public StateProperties() { } public String description = ""; public String owner = ""; public Date modifyTime = new Date(); public String accessPermissions = ""; } } public interface IStateServerEJB extends EJBObject, IStateServer { .... } 请注意，getProperties 方法返回一个内部类。 错误示例： D:\AppServer7a\appserv\domains\domain1\server1\generated\ejb\j2ee-apps\smugglercom\spss\ssp\state\ejb\StateServerEJB_EJBObjectImpl.java:133: 不允许直接使用合成内部类名： com.spss.ssp.state.IStateServer$StateProperties 生成的代码应为 com.spss.ssp.state.IstateServer.StateProperties 而不是 com.spss.ssp.state.IstateServer$StateProperties 解决办法 将 StateProperties 移到单独的（独立类而非内部类）类中。
> 4750461 | 在 Solaris SPARC 中，Application Server 可能会在动态重新装入过程中崩溃。 对于大型应用程序（具有多个企业 Bean），在应用程序动态重新装入过程中可能发生崩溃。在开发环境中使用动态重新装入功能可以快速测试对应用程序所做的细微更改。导致崩溃的原因是尝试使用的文件描述符多于可用描述符。 解决办法 使用以下格式向 /etc/system 文件添加行，以增加文件描述符限制。根据应用程序的大小，可以设置较高或较低的值。 set rlim_fd_max=8192 set rlim_fd_cur=2048 重新引导系统。

> ## 验证器

> 本小节介绍已知的验证器问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4742545 | 独立验证器显示“未找到 EJB 类”错误。 验证器使用以下测试说明消息来指示某些失败的测试：未找到 EJB 类。当某个 EJB JAR 文件使用企业 Bean，并同时引用在同一 EAR 应用程序中另一个 EJB JAR 文件内打包的企业 Bean 时，测试将失败。如果试图验证连接器 (RAR) 从属的 EAR 文件，也会收到失败消息。这是因为 RAR 束无需在具有从属于 RAR 束文件的企业 Bean 的 EAR 文件中打包。仅在使用独立验证器的情况下才会发生失败（与连接器相关的失败除外）。通过部署命令或管理界面调用的验证器不显示失败。 解决办法 确保应用程序 EAR 打包正确，如果使用的是任何实用程序 JAR 文件，则会将其打包到 EAR 文件中。要解决引用错误，可以使用 asadmin 或管理界面切换到通过部署后端调用的验证器。对于与连接器相关的失败，请将包含所需类的 JAR 文件放置到验证器的类路径中。可以打开 install_root/bin/verifier[.bat] 文件，并将 LOCAL_CLASSPATH 变量添加到 JVM_CLASSPATH 变量的后面。从本地将类添加到 LOCAL_CLASSPATH 变量中，然后运行验证器。

> ## 负载平衡器

> 本小节介绍已知的负载平衡器问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4761151, 4825429, 4981545 | 通过负载平衡器插件发送间歇性 SSL 和非 SSL 请求时中间形式和基本验证失败。显示“502 错误网关”错误消息。未使用默认设置保持代理到容器连接的持久性。 由于在应用服务器上进行的部署/取消部署和/或由于保持活动超时，或者由于负载平衡器连接池中的无效连接，负载平衡器释放了与应用服务器的持久性连接。发生此情况时，负载平衡器的某些请求将失败，并显示错误页面。通常，在频繁地尝试和测试部署/取消部署以及其他配置更改的开发环境中，会发生此情况。 解决办法 将应用服务器上的保持活动超时设置为 0。 使用基于 Web 的管理界面： 1. 启动管理控制台。 2. 选择“HTTP 服务器”->“微调”。 3. 在“HTTP 持久性连接超时”字段中，输入 0（页面上最后一个文本框） 4. 应用更改并重新启动应用服务器。 使用命令行界面： 1. 添加以下行：KeepAliveTimeout 0 in init.conf of appserver 2. 启动 asadmin reconfig 命令。 3. 重新启动应用服务器。
> 4962735 | 在 Linux 上，安装了负载平衡器和 sec_db 文件后，Apache Web Server 1.3.27 不启动。 解决办法 在 /src/MakeFile 文件中的“End of automatically generated section”之后、“OBJS= \”之前，添加以下行。另外，确保已经在特定位置安装了 Application Server 库： LIBS+= -licuuc -licuil8n -lnspr4 -lpthread -lxerces-c -lsupport -lnsprwrap -lns-httpd40 LDFLAGS+= -L/space/SJSAS/installations/lib。 其中：/space/SJSAS/installations 是应用服务器安装的位置。有关详细信息，请参见《Sun Java System Application Server 管理指南》中的“编译 Apache Web Server”。
> 5018537 | 故障转移过程中显示出现 Identity Server/Application Server 集成服务不可用错误。 Loadbalancer.xml 使用“/”作为 Web 模块的上下文根路径。故障转移后，由于上下文根路径不存在，因此要指定一个默认字符串作为更新 JROUTE Cookie 的路径。这样就导致浏览器端上具有两个 JROUTE Cookie。 1. 旧的 JROUTE Cookie，使用“/”作为路径指向失败的实例。 2. 新的 JROUTE Cookie，使用“/Default”作为路径指向新的实例。 浏览器总是倾向使用旧的过期 Cookie (1)，因而会导致重定向和故障转移，并且有时候浏览器本身会失败。 解决办法 为所有 Web 模块都指定特定的上下文根路径。例如： <web-module context-root=”appl” enabled=”true” disable-timeout-in-minutes=”60” error-url=”appl-lberror.html” /> <web-module context-root=”app2” enabled=”true” disable-timeout-in-minutes=”60” error-url=”app2-lberror.html” /> 故障转移后，JROUTE 就可以使用“/appl”作为路径，该路径是有效路径并可正常工作。
> 5007720 | 日志消息与 Web 模块中的错误 URL 的无效值不匹配。 如果将 loadbalancer.xml 文件的 web-module 标记中的 error-url 属性设置为一个无效值，例如下面所示的： <web-module context-root="app1" enabled="true" disable-timeout-in-minutes="60" error-url="abc"/> 那么将显示以下日志消息： 警告 (11113):报告:lb.configurator:XML_VALIDATOR_WARNING:用于错误 URL sun-http-lberror 的格式无效。 但实际上日志消息应为： 警告 (20015):报告:lb.configurator:XML_VALIDATOR_WARNING:用于错误 URL abc 的格式无效

> ## 高可用性

> 本小节介绍已知的高可用性问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4831332 | 在其他用户使用“su”命令成为超级用户时，hadbm create 无法正常运行。 使用“su”命令成为超级用户时，hadbm 可能会报告关于特定路径的访问问题。hadbm 需要超级用户的环境信息。 解决办法 使用“su -”命令并重试。
> 4843422 | HADB 连接池丢失，随后服务器用完所有连接。 部署许多应用程序时可能会用完 HADB 所允许的最多连接，从而导致应用程序失败。 解决办法 部署应用程序之后，重新启动 HADB 服务器。
> 4846432, 4846691, 4972881 | HADB-hadbm 管理客户机不能显示正确的数据库状态。 从某一台管理客户机计算机上创建的 HADB 实例无法从另一台用作管理客户机的计算机上进行访问。 例如，如果在计算机 1 上使用 hadbm create hadb-database，那么其他 hadbm 命令（如 hadbm status hadb-database）将无法在计算机 2 上使用。这些命令会报告数据库不存在。 解决办法 办法一：使用用于创建数据库的同一台客户机计算机。 办法二：如果不得不使用其他客户机计算机，则必须首先使该新客户机了解此 HADB 实例。要使新客户机了解 HADB 实例： 1. 在计算机 2 上安装 HADB Administration Client（如果尚未安装）。 2. 在计算机 2 上创建 configpath 的路径（如果尚不存在）。 3. 将在 configpath 目录中找到的 .cfg 文件和 .def 文件从其中一个服务器计算机（或者从计算机 1）复制到此目录。 4. 在 .cladmrc 文件中添加一个条目，使 hadbm 了解配置路径。 要查找配置文件： hadbm 在 .cladmrc 文件中搜索包含指向指定数据库的配置文件路径的条目。.cladmrc 文件应当位于要运行 hadbm 的主目录上。.cladmrc 文件中的数据库条目应具有以下格式： databasename:configpath:howtoaccess 示例 1： hadb:/home/hadb/config:NFSMNT 示例 2： hadb1:/dsk0/dbdef:machine2 在第一个示例中，配置路径可以通过 NFS 进行访问，而在第二个示例中，仅能在名为“machine2”的主机计算机上从本地进行访问。根据需要选择 NFS 或本地文件系统。
> 4855623 | 关闭其中一个节点的主机时，hadbm stop 命令无法退出 如果 HADB 节点由于网络问题而接收不到关闭消息，则 hadbm stop 命令可能会无法完全关闭数据库。通常出现的情况是 hadbm 要用超过 60 秒的时间来完成操作。在这种情况下，hadbm stop/delete 命令将无法正常运行。用户必须指定要关闭的节点。 解决办法 1. 使用 hadbm status --nodes 命令来确定哪些节点仍处于活动状态。 2. 为每个正在部分运行的特定节点运行 hadbm stopnode -f node_number 命令。
> 4861337 | 在执行 hadm stopdb 时，如果有一个活动的数据节点失败，那么 hadm startdb 也将失败。 如果数据库无法启动，则 hadbm 状态应返回“不可操作”状态。 解决办法 要纠正此问题： 1. 运行 hadbm clear --fast 如果此命令对于系统中的每台计算机均报告“地址正在使用”类型的故障，应登录并终止以“clu_”作为开始的所有进程。 2. 重新运行 hadbm clear --fast 命令。 这将重新启动数据库，从而导致丢失所有数据。 3. 重新创建会话存储。 有关创建会话存储的详细信息，请参见《Sun Java System Application Server 管理指南》。
> 4958827 | 子进程事务无法响应。 如果一台主机计算机容纳了多个 HADB 节点，并且所有节点都使用同一磁盘来放置其设备，则会发现磁盘 I/O 将成为瓶颈。由于 HADB 进程总是要等待异步的 I/O，因而无法响应节点监控程序的心跳检查。这样就导致节点监控程序会重新启动该进程。此问题可能会在任一操作系统中发生，而在 Red Hat Linux AS 2.1 和 Red Hat Linux AS 3 中的确发现了此问题。 解决办法 使用不同的磁盘来放置属于同一计算机上的不同 HADB 节点的设备。
> 4895236 | 服务器存在负荷时，如果持久性范围被指定为会话，且持久性频率被设置为基于时间，则服务器有时会报告以下异常： java.io.IOException:HA 存储出现错误:HADB-E-11939:主键约束违规 当多个线程将同一会话插入 HADB 时，会出现此警告消息。但无需担心，因为记录将安全地存储在 HADB 中，且该会话以后发出的请求可成功更新会话内容。 服务器存在负荷时，如果持久性范围被指定为会话，且持久性频率基于时间，则有时会报告以下异常： java.io.IOException:HA 存储出现错误:HADB-E-11939:主键约束违规 at com.sun.appserv.ee.web.sessmgmt.HAStore.executeStatement(HAStore.java:2202) at com.sun.appserv.ee.web.sessmgmt.HAStore.insertSessionBlob(HAStore.java:1957) com.sun.appserv.ee.web.sessmgmt.HAStore.save(HAStore.java:1409) at org.apache.catalina.session.PersistentManagerBase.writeSession(PersistentManagerBase.java:759) at org.apache.catalina.session.PersistentManagerBase.processMaxIdleBackups(PersistentManagerBase.java:1097) com.sun.appserv.ee.web.sessmgmt.HAManagerBase.processPersistenceChecks(HAManagerBase.java:88) org.apache.catalina.session.PersistentManagerBase.run(PersistentManagerBase.java:1182) at java.lang.Thread.run(Thread.java:536) 解决办法 您可以忽略此警告消息，这样做是安全的。用户应用程序不会受到影响。
> 5042351 | 如果创建了一个数据库实例并向其中添加了节点，那么以后创建的任何新表格都将无法在创建数据库之后添加的节点上进行分段。只有在添加节点之前创建的表格才能够在 hadbm addnodes 对其重新进行分段时使用添加的节点。 解决办法 生成数据库以后，先将用户数据放置到其中，然后再添加节点。如果一开始就需要较多节点，则创建带有所需的全部节点的数据库。如果要添加节点，请等到创建用户数据后再添加。否则，添加的节点将不能用于存储数据。
> 无 | 默认的垃圾收集器线程经常中断，导致 HADB 连接丢失。 当应用服务器上存在大量负荷时，默认的垃圾收集器线程会经常中断以删除创建的对象，从而减少应用服务器的吞吐量，并增加响应时间。这也可能导致某些 HADB 连接丢失。 解决办法 将垃圾收集更改为并行垃圾收集将有益于存在大量负荷的服务器，这是因为垃圾收集线程将与其他线程并行运行。请手动将以下选项添加到 server.xml 文件的 jvm-options 部分中： "-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SoftRefLRUPolicyMSPerMB=1" 此外，还可以使用管理控制台将同一选项添加到 JVM 选项中。

> ### 使用双网络配置 HADB

> 使用两个子网上的双网络进行配置的 HADB 可以在 Solaris SPARC 中正常工作。但是，由于某些硬件平台上存在操作系统或者网络驱动程序的问题，因此已发现在 Solaris x86 和 Linux 平台上不能正确处理双网络。这就导致 HADB 出现以下问题：

> - 在 Linux 上，某些 HADB 进程的消息传送被阻塞。这将导致 HADB 节点重新启动以及进行网络分区操作。
> - 在 Solaris x86 上，如果网络失败，IP 接口可能会挂起。如果发生这种情况，则重新引导计算机以解决问题。

> Sun Java System Application Server 7 企业版不支持多路径和链路聚合。有关详细信息，请与 Sun 客户支持联系。

> ## 服务器管理

> 本节包含以下主题：

> - 命令行界面 (CLI)
> - 管理结构
> - 管理界面

> ### 命令行界面 (CLI)

> 本部分介绍已知的命令行界面问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4676889 | 如果 CLI 命令包含的字符超过 256 个，将在单模式下溢出。 在 UNIX® 中，在单模式下执行包含超过 256 个字符的 CLI 命令时，命令失败，并显示以下错误：...未找到命令... 这是终端限制，而非 CLI 限制。 示例： create-jdbc-connection-pool --instance server4 --datasourceuser admin --datasourcepassword adminadmin --datasourceclassname test --datasourceurl test --minpoolsize=8 --maxpoolsize=32 --maxwait=60000 --poolresize=2 --idletimeout=300 --connectionvalidate=false --validationmethod=auto-commit --failconnection=false --description test sample_connectionpoolid) 解决办法 1. 对于需要超过 256 个字符的命令，请使用 CLI 多模式。 2. 如果必须使用单模式，请使用 OpenWin cmdtool 运行该命令。

> ### 管理结构

> 本部分介绍已知的管理结构问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4686003 | 未强制执行 HTTP 服务质量限制。 服务质量 (QOS) 包括指定 HTTP 连接的最大数目和带宽限制的方法。当超过这些属性时，应向客户机返回 503 错误。但是，通过管理界面启用 QOS 后，服务器未强制执行 QOS 限制。 解决办法 要完全启用 QOS 功能，必须手动将 AuthTrans fn=qos-handler 行添加到虚拟服务器的 obj.conf 文件中的默认对象的顶部。Developer's Guide to NSAPI 中介绍了 qos-handler 服务器应用程序功能 (SAF) 和 obj.conf 配置文件。
> 4740022 | SNMP：添加和启动新的实例服务器时，返回 END OF MIB。 如果在添加和启动新实例时未关闭实例服务器和子代理，则会返回 END OF MIB 消息。 解决办法 1. 要查看新实例，请确保已关闭子代理和所有实例服务器进程。在每个服务器 ->“监控”->“启用 SNMP 统计集合: 打开”下，应用更改，然后重新启动每个实例服务器，并且再启动一个子代理进程。 2. 如果子代理已处于运行状态，请不要在任何实例中启动任何额外的子代理进程。Application Server 安装只能有一个主代理和一个子代理（所有域/实例均如此）。
> 4865739 | 对 server.xml 中实例端口的否定性测试损坏了 domains.bin 如果端口号和/或 IP 地址中包含字母字符，将无法创建任何新实例，并且将无法管理当前实例。 解决办法 1. 编辑 server.xml 文件及其备份文件，并更正端口号和/或 IP 地址。 2. 使用 keepmanualchanges=true 选项执行 asadmin reconfig 命令。 3. 使用管理界面，通过在“管理”树中选择实例名来停止实例。 4. 重新启动管理服务器和应用服务器实例。

> ### 管理界面

> 使用管理界面时，请确保将浏览器配置为从服务器检查页面的更新版本，而不是从高速缓存选择这些页面。通常，默认浏览器设置不会导致出现问题。

> - 在 Internet Explorer 中，请确保“工具”->“设置...”->“检查存储页面的更新版本:”未设置为“永不”。
> - 在 Netscape 中，请确保“编辑”->“首选项...”->“高级”->“高速缓存”->“比较高速缓存中的页面与网络上的页面:”未设置为“永不”。

> 本部分介绍已知的管理图形用户界面问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4725473 | 外部证书昵称未显示在管理界面的“昵称”列表中。 如果通过 Application Server 管理界面安装外部证书，则会在尝试使用安装在外部加密模块上的证书为 HTTP 侦听器启用 SSL 时遇到问题。即使成功完成了证书的安装，证书昵称也不会显示在管理界面中。 解决办法 1. 以管理员用户身份登录安装了 Sun ONE Application Server 软件的系统。 2. 将 HTTP 侦听器链接到安装在外部加密模块上的证书。执行 asadmin 命令。有关 asadmin 命令的详细信息，请参见 asadmin(1M) 手册页。 /sun/appserver7/bin/asadmin create-ssl --user admin --password password --host host_name --port 8888 --type http-listener --certname nobody@apprealm:Server-Cert --instance server1 --ssl3enabled=true --ssl3tlsciphers +rsa_rc4_128_md5 http-listener-1 此命令将建立证书与服务器实例之间的链接，但并不安装证书（已使用管理界面安装了证书）。即使将证书链接到 HTTP 侦听器，HTTP 侦听器也会在非 SSL 模式下进行侦听。 3. 使用以下 CLI 命令使 HTTP 侦听器在 SSL 模式下侦听。 /sun/appserver7/bin/asadmin set --user admin --password password --host host_name --port 8888 server1.http-listener.http-listener-1.securityEnabled=true 此命令将服务器实例的侦听状态从非 SSL 切换到 SSL。 完成前面的步骤后，证书将显示在管理界面中。 4. 现在可以使用管理界面根据需要编辑 HTTP 监听器。
> 4760939 | SSL：由 certutil 生成的自签名证书未显示在“证书昵称”列表中。 自签名证书由 certutil 生成，且“证书昵称”未显示在管理界面中。 解决办法 要使用自签名证书，必须手动编辑 server.xml 文件。
> 4991824 | 从管理控制台启用 SSL 后，重新启动超时。 解决办法 启用 SSL 时，停止服务器，然后再启动该服务器，而不是重新启动实例。
> 4988332 | 在未做出任何更改的情况下出现了“应用所需的更改”图标。 在管理控制台中，当查看 Application Server 实例的特性或设置时，在并未对设置做出任何更改的情况下出现了“应用所需的更改”图标。 解决办法 此消息仅出现一次，且不会对 Application Server 做出任何更改。因此出现此消息时选择“应用更改”即可。

> ## 样例应用程序

> 本小节介绍已知的样例应用程序问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4739854 | 使用 asadmin 部署资源时所需的指导。 在某些样例文档中，会指示您使用 asadmin 命令部署应用程序，但并没有提供如何创建所需资源的说明。 解决办法 您可以使用 asadmin 命令部署应用程序/资源，并可以通过参考样例的 build.xml 文件获取更多信息。也可通过运行 asant deploy 在打印输出中找到更多信息。 针对 JDBC/BLOB 示例，下列步骤使用 asadmin 创建资源（假设主机名为 jackiel2，且管理服务器的用户名/密码/端口是 admin/adminadmin/4848）： asadmin create-jdbc-connection-pool --port 4848 --host jackiel2 --password adminadmin --user admin jdbc-simple-pool --datasourceclassname com.pointbase.jdbc.jdbcDataSource --instance server1 asadmin set --port 4848 --host jackiel2 --password adminadmin --user admin server1.jdbc-connection-pool.jdbc-simple-pool.property.DatabaseName=jdbc:pointbase:server://localhost/sun-appserv-samples
> 4993620 | 使用多个 XA 连接时用 false 调用 afterCompletion() 使用 samples/transactions/ejb/cmt/bank 应用程序的经修改的版本 — BankBean ejb 将连接两个数据库。一个用于检查 a/c，另一个用于进行保存。有两个已创建的连接池，它们是为 oracle.jdbc.xa.client.OracleXADataSource 数据源而配置的连接池，并且全局事务已经打开。 运行独立的客户机，该客户机将转移某些平衡，并恢复平衡的检查和保存，从而生成三个远程调用 — transferBalance()、getCheckingBalance() 和 getSavingsBalance()。 可以发现用于 getCheckingBalance() 调用的 afterCompletion 是使用 committed=false 进行调用的，尽管所有数据库操作都是成功的。 例如，执行了以下命令： appclient -client /space/S1AS/installation/domains/domain1/server1/applications/j2ee-apps/transactions-bank_13/transact -name BankClient -textauth com.sun.jndi.cosnaming.CNCtxFactory iiop://localhost:3700 结果：afterCompletion() 使用 false 进行调用，即使对于使用多个 XA 连接并仅执行只读数据库操作的有状态会话 Bean 来说，tx 是成功的。 解决办法 当前 JTS 实现无法解决此问题。
> 5016748 | 对使用 Java 客户机运行 SFSB 故障转移样例应用程序的描述不正确。 样例应用程序文档中用于运行 SFSB 故障转移样例应用程序的 Java 命令错误。 解决办法 以下是对使用 Java 客户机运行 SFSB 故障转移的正确描述： 使用基于 RMI/IIOP 的本地或远程客户机而不通过 ACC 来运行 sfsbFailover 样例： Java 客户机不使用 Application Client Container 的接口来执行。它可以在本地计算机 (ashost) 或远程计算机上执行。客户机应用程序从命令行开始运行，即 java -Djava.library.path=$AS_INSTALL/lib:/usr/lib/mps -Dcom.sun.CORBA.connection.ORBSocketFactoryClass=com.sun.enterprise.iiop.EEIIOPSocketFactory -Dorg.omg.PortableInterceptor.ORBInitializerClass.com.sun.appserv.ee.iiop.EEORBInitializer -Dorg.omg.CORBA.ORBClass=com.sun.enterprise.iiop.POAEJBORB -Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.internal.corba.ORBSingleton -Djavax.rmi.CORBA.UtilClass=com.sun.corba.ee.internal.POA.ShutdownUtilDelegate -classpath <CP> <ClientApp> java.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory com.sun.appserv.iiop.loadbalancingpolicy=ic-based com.sun.appserv.iiop.endpoints=host:port,host:port 其中： CP 包括用于 CLASSPATH 的五个 jar 文件，它们是 sfsbFailover.jar、appserv-rt.jar、appserv-ext.jar、appserver-rt-ee.jar 以及 appserv-admin.jar。 文件 sfsbFailoverClient.jar 是从部署目录复制到当前目录的，部署目录为：install_dir/domains/domain1/server1/applications/j2ee-apps/sfsbFailover_1 其他 jar 文件是从 AS 安装复制到当前目录的，AS 安装位于：install_dir/lib 如果想要在远程计算机上运行客户机应用程序，则需要将 sfsbFailoverClient.jar 以及其他三个应用服务器 jar 文件传送到该客户机计算机上。尽管本示例中使用的是 sfsbFailoverClient.jar 文件来运行包含或不包含 ACC 的应用程序客户机，但实际上它包含的文件多于未使用 ACC 的情况下所必需的文件。要在远程计算机上运行不包含 ACC 的该示例，最少需要 appserv-ext.jar 文件以及下列从 sfsbFailoverClient.jar 文件提取的文件： samples/ejb/stateful/simple/ejb/Cart.class - 远程接口 samples/ejb/stateful/simple/ejb/CartHome.class - 主接口 samples/ejb/stateful/simple/ejb/_Cart_Stub.class - 远程存根 samples/ejb/stateful/simple/ejb/_CartHome_Stub.class - 主存根 samples/ejb/stateful/simple/client/CartClient.class - 客户机应用程序主类 appserv-ext.jar 文件在客户机计算机上是必需的，因为它包含客户机所需的 javax.ejb 软件包以及客户机可能会需要的 J2EE API 的实现和接口。 ClientApp 是指客户机程序。在本示例中为：samples.ejb.stateful.simple.client.CartClient
> 5016748 续 | URL 是指以逗号分隔的列表，其中包含在群集中运行的应用服务器的主机名（例如 ashost）和 ORB 端口（例如 3700）。例如， ashost:3700,ashost:3701,ashost:3702 以下是此命令的完整示例： java -Djava.library.path=$AS_ISNTALLlib:/usr/lib/mps -Dcom.sun.CORBA.connection.ORBSocketFactoryClass=com.sun.enterprise.iiop.EEIIOPSocketFactory -Dorg.omg.PortableInterceptor.ORBInitializerClass.com.sun.appserv.ee.iiop.EEORBInitializer -Dorg.omg.CORBA.ORBClass=com.sun.enterprise.iiop.POAEJBORB -Dorg.omg.CORBA.ORBSingletonClass=com.sun.corba.ee.internal.corba.ORBSingleton -Djavax.rmi.CORBA.UtilClass=com.sun.corba.ee.internal.POA.ShutdownUtilDelegate -classpath sfsbFailoverClient.jar:appserv-ext.jar:appserv-rt.jar:appserv-rt-ee.jar:appserv-admin.jar samples.ejb.stateful.simple.client.CartClient java.naming.factory.initial=com.sun.appserv.naming.S1ASCtxFactory com.sun.appserv.iiop.loadbalancingpolicy=ic-based com.sun.appserv.iiop.endpoints=localhost:3700,localhost:3701 运行此命令之前，请将 $AS_INSTALL/lib 和 /usr/lib/mps 包括在 LD_LIBRARY_PATH 中。 您将看到交互式控制台，它可以帮助您测试 SFSB、InitialContext、主引用和远程引用的高可用性。创建 InitialContext 之后，按 Enter 键。则该引用将被故障转移到另一个可用的服务器实例中。您也可以使用同样的方式测试主引用、远程引用的故障转移行为。
> 5016656 | 样例文档指向错误的 PointBase 启动脚本路径。 startserver.sh 的路径被错误地记录为 pointbase_install_dir/tools/server/startserver.sh。 解决办法 PointBase 启动脚本的正确路径为 pointbase_install_dir/client_tools/server/startserver.sh。
> 5016647 | JWSDP 1.0_01 中的 Coffee Break 应用程序发生 indent-amount 问题。 运行 Coffee Break 样例应用程序时显示以下错误： 错误: 未识别输出特性 indent-amount 解决办法 这是 JWSDP 1.0_01 中已知的一个问题。要避免此问题，可以使用高于 1.1 的 JWSDP 版本。

> ## ORB/IIOP 侦听器

> 本小节介绍已知的 ORB/IIOP 侦听器问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4743419 | RMI-IIOP 客户机在查找 IPv6 地址时无法正常工作，因为 IPv6 地址的 DNS 地址查找失败。 如果 IPv6 地址的 DNS 查找失败，则在查找 IPv6 地址时，Remote Method Invocation-Internet Inter-ORB Protocol (RMI-IIOP) 的客户机无法正常工作。 解决办法 应该在部署站点上设置域名服务 (DNS)，以便查找 IPv6 地址。
> 5017470 | 由 Application Server 所指定的默认 IIOP 端口号是随机生成的。 当创建新的 ORB 侦听器或 IIOP 端点时，IIOP 端口值将根据创建的是 ORB 侦听器还是 IIOP 端点而不同。 1. 创建新的 ORB 侦听器 > IIOP 端口值不能保留为空，但是不存在表示“必须指定”条目的“*”。尽管在服务器安装期间创建的默认侦听器的端口值为 3700，但所显示的默认值为 1072。 2. 创建新的 IIOP 端点 > 所显示的默认 IIOP 端口值为 3600。如果所创建端点的端口值保留为空，则所创建的 IIOP 端点的 IIOP 端口值为空。 3. 如果创建新的服务器实例，则默认的 ORB 侦听器端口值可以是任意大的数值，通常为 > 30000。 解决办法 IIOP 端口值不应超过 32767。如果配置的端口值超出了此范围，那么在故障转移过程中会出现连接失败。为服务器配置 IIOP 侦听器时，请确保其端口值在此范围之内。

> ## 文档

> 本小节介绍已知的文档问题和相应的解决办法。

> ID | 摘要
> --- | ---
> 4970418 | 在 create-ssl 手册页中，--certname 与 cert_name 之间缺少一个空格。 解决办法 有关 --certname 选项的正确语法如下所示： --certname cert_name
> 4993601 | 显示 Sun ONE Application Server 7 企业版的过期帮助文件。 解决办法 如果先前安装了其他版本的 Sun Java System Application Server（例如，Sun ONE Application Server 7 企业版），则应确保 MANPATH 环境变量指向当前的安装目录。
> 5008199 | delete-jvm-options 手册页的示例部分出现文档错误。 该示例应为： asadmin delete-jvm-options --user admin --password adminadmin --host localhost --port 4848 --instance server1 -- "-Djava.security.policy=/var/opt/SUNWappserver7/domains/domain1/server1/config/server.policy"

> #

> 可重新分发的文件

> Sun Java System Application Server 版本 7 2004Q2 不包含任何可重新分发的文件。

> #

> 如何报告问题和提供反馈

> 如果您在使用 Sun Java System Application Server 时遇到了问题，请用以下方式之一与 Sun 客户支持联系：

> - Sun 联机软件支持服务：
>   http://www.sun.com/service/sunone/software

> 此站点包含指向知识库、联机支持中心和产品跟踪的链接，并且包含维护服务和产品支持的联系电话。

> - 拨打随维修合同提供的电话号码

> 为了使我们能更好地帮助您解决问题，请在与客户支持联系时提供以下信息：

> - 问题的说明，包括出现问题时的情况及其对操作的影响
> - 计算机类型、操作系统版本以及产品版本，包括可能影响该问题的任何修补程序和其他软件
> - 用于再现问题的方法的详细步骤
> - 任何错误日志或信息转储

> 您还会发现订阅以下兴趣组是很有用的，您可以在其中讨论 Sun Java System Application Server 的相关主题：

> snews://<YourNewsForum>

> snews://<YourSecondNewsForum>

> ## Sun 欢迎您提出意见

> Sun 非常重视改进产品文档，欢迎您提出意见和建议。请通过基于 Web 的表单向 Sun 提供反馈：

> http://www.sun.com/hwdocs/feedback

> 请在相应的字段提供完整的文档标题和文件号码。文件号码是一个七位或九位的数字，可以在书的标题页或文档的顶部找到。例如，本发行说明文档的文件号码为 817-7579。

> #

> 其他 Sun 资源

> 可以在以下 Internet 站点找到有用的 Sun Java System 信息：

> - Sun Java System文档
>   http://docs.sun.com/prod/sunone
> - Sun Java System 专业服务
>   http://www.sun.com/service/sunps/sunone
> - Sun Java System 软件产品和服务
>   http://www.sun.com/software
> - Sun Java System 软件支持服务
>   http://www.sun.com/service/sunone/software
> - Sun Java System 支持和知识库
>   http://www.sun.com/service/support/software
> - Sun 支持和培训服务
>   http://training.sun.com
> - Sun Java System 咨询和专业服务
>   http://www.sun.com/service/sunps/sunone
> - Sun 开发者支持服务
>   http://www.sun.com/developers/support
> - Sun Java System 软件培训
>   http://www.sun.com/software/training

> 版权所有 © 2004 Sun Microsystems, Inc. 保留所有权利。

> Sun Microsystems, Inc. 对本文档介绍的产品中所包含的技术拥有相关的知识产权。需特别指出的是（但不局限于此），这些知识产权可能包含在 http://www.sun.com/patents 中列出的一项或多项美国专利，以及在美国和其他国家/地区申请的一项或多项其他专利或待批专利。

> SUN 所有/机密。

> 其使用遵守许可证条款。

> 此发行版本可能包含由第三方开发的内容。

> 本产品的某些部分可能是从 Berkeley BSD 系统衍生出来的，并获得了加利福尼亚大学的许可。

> Sun、Sun Microsystems、Sun 徽标、Java 和 Solaris 是 Sun Microsystems, Inc. 在美国和其他国家/地区的商标或注册商标。所有 SPARC 商标的使用均已获得许可，它们是 SPARC International Inc. 在美国和其他国家/地区的商标或注册商标。