Sun Java System Application Server Enterprise Edition 适用于 Microsoft Windows 的发行说明

Sun Java™ System Application Server Enterprise Edition 适用于 Microsoft Windows 的发行说明

版本 8.1 2005Q4

文件号码 819-5817

Sun Java System Application Server Enterprise Edition 8.1 2005Q4 产品极大地简化了创建和管理 Web 服务应用程序的任务。它为可伸缩服务提供了较高的性能、群集和高可用性功能,使其在软件和硬件出现故障时可以继续运行。Application Server 为 Web 服务提供了开发路径,从而在提供独特而灵活的发展机会的同时简化了开发过程。

本发行说明包含发行 Sun Java System Application Server 8.1 2005Q4 产品(适用于 Windows)时可用的重要信息,包括组件要求、平台摘要、已知问题和其他最新问题。开始使用 Application Server 产品之前,请先阅读本文档。

可以在以下 Sun Java System 文档 Web 站点找到本发行说明的最新版本:
http://docs.sun.com/app/docs/prod/entsys.05q4http://docs.sun.com/app/docs/prod/entsys.05q4?l=zh。在安装和设置软件之前,请先查看此 Web 站点上的相关信息,并在以后定期查看最新的发行说明和产品文档。

本文档包括以下内容:

本文档引用了第三方 URL 以提供其他相关信息。


Sun 对本文档中提到的第三方 Web 站点的可用性不承担任何责任。对于此类站点或资源中的(或通过它们获得的)任何内容、广告、产品或其他资料,Sun 并不表示认可,也不承担任何责任。对于因使用或依靠此类站点或资源中的(或通过它们获得的)任何内容、产品或服务而造成的或连带产生的实际或名义损坏或损失,Sun 概不负责,也不承担任何责任。



发行说明修订历史记录

本节列出了初次发行 Application Server 2005Q4 组件后对本发行说明所做的更改。

表 1 修订历史记录

修订日期

说明

2006 年 2 月

正式版

2005 年 11 月

Beta 版


关于 Application Server 8.1 2005Q4

Sun Java System Application Server Enterprise Edition 8.1 是与 J2EE 1.4 平台兼容的服务器,它用于在大规模生产环境中开发和部署 J2EE 应用程序和基于 Java 技术的 Web 服务。

本节包括:

Application Server 8.1 2005Q4 的新增功能

Application Server Enterprise Edition 8.1 2005Q4 Update 2 包括以下增强功能:

Application Server Product Releases

Application Server 产品是以多种方式提供的。下表列出了本产品的各种提供机制:

Application Server 产品发行版

提供机制

Sun Java Enterprise System 内的 Application Server Enterprise Edition 组件。

需要通过 Sunsolve 安装基于文件分发的修补程序

J2EE 支持

Sun Java System Application Server 8.1 2005Q4 支持 J2EE 1.4 平台。下表介绍了 J2EE 1.4 平台上可用的增强 API。

表 2 J2EE 1.4 平台上的主要 API 更改 

API

说明

组件

应用程序和应用程序客户机

通过 XML 模式实现标准部署描述符

Enterprise JavaBeans (EJB) 2.1

计时器服务和 EJB Web 服务端点

Java Servlet 2.4

Web 服务端点过滤器

JavaServer Pages (JSP) 2.0 体系结构

表达式语言和标记库

J2EE Connector Architecture 1.5

内嵌资源适配器和 Java 消息服务 (JMS) 插件化

Web 服务

Java Web Services Developer Pack 1.5

用于构建、测试和部署 XML 应用程序、Web 服务和 Web 应用程序的集成工具包

用于基于 XML 的远程过程调用的 Java API (JAX-RPC) 1.1

用于 WSDL 和 Java 技术的映射以及对开发 Web 服务客户机和端点的支持

WS-I 基本配置文件 1.0

使用 WSDL 和 SOAP 启用互操作性的元素

Java 的带附件的 SOAP API (SAAJ) 1.2

用于基于 SOAP 的消息传送的 API;帮助创建带有附件的 SOAP 消息

用于 XML 注册表 的 Java API (JAXR) 1.0

统一且标准的 API,用于访问 XML 注册表,例如用于通用说明、发现和集成(UDDI 和 ebXML)的 XML 注册表

其他

J2EE Deployment 1.1

启用部署 J2EE 组件和应用程序的标准 API

J2EE Management 1.0

管理 J2EE 平台的信息模型的定义

Java Management Extensions (JMX) 1.2

标准管理 API

Java 容器授权合同 (JACC) 1.0

J2EE Application Server 和授权策略提供器之间的安全性合同的定义

用于 XML 处理的 Java API (JAXP) 1.2

应用程序可以用来解析和变换 XML 文档的 API;还添加了对处理 XML 模式的支持

JMS 1.1

一种消息传送标准,使 J2EE 应用程序组件可以创建、发送、接收和读取消息;还添加了对用于队列和主题的统一 API 的支持

JavaMail 1.3

一组建立邮件系统模型的抽象类;还包括对 API 的细微更新

高性能

Application Server 包括一个高性能的 EJB 容器、Web 容器和服务,并使用 Sun Java System Message Queue 软件支持并行消息传送。

可扩展性

Application Server 可以通过服务器实例的群集和请求负载平衡来支持水平可伸缩性。它也可以实现业内领先的支持大型多处理器计算机的垂直可伸缩性。可以对集成消息代理进行群集以获得更佳的可伸缩性和可用性。从 HTTP 客户机访问的客户机、基于 RMI/IIOP 的胖客户机应用程序、Web 服务客户机和 JRM 客户机可被负载平衡到 Application Server 群集。

高可用性

Application Server 包括 HTTP、IIOP 和 JMS 客户机的负载平衡;HTTP 会话故障转移支持;EJB 群集和故障转移支持;具有高可用性的 EJB 计时器;分布式事务恢复;对持续式应用程序升级的支持;以及一个用于存储 J2EE 应用程序瞬间状态的高可用性数据库。

可用性允许对群集中的 Application Server 实例进行故障转移保护。一个 Application Server 实例出现故障时,其他 Application Server 实例将接管指定给该故障服务器的会话。会话信息存储在 HADB 中。HADB 支持 HTTP 会话的持久性、有状态会话 Bean 和单点登录证书。

JavaServer Faces 1.1 支持

Sun Java System Application Server Enterprise Edition 8.1 支持 JavaServer Faces 1.1 技术。JavaServer Faces 技术由一组服务器端 API 组成,这些 API 表示用于管理其状态、事件、处理和输入验证的用户界面组件。这些 API 还定义了页面导航并支持国际化和辅助功能。您可以使用 JSP 自定义标记库添加自定义 UI 组件。

使用 JavaServer Faces 技术进行开发时,开发团队的每个成员可以集中开发整个进程的单个部分,然后由一个简单的编程模型将这些部分连接起来,从而使开发周期更为简单高效。

硬件和软件要求

本节列出了安装 Sun Java System Application Server Enterprise Edition 8.1 产品之前必须满足的要求。

平台要求

下表列出了 Sun Java System Application Server Enterprise Edition 8.1 2005Q4 产品所支持的操作系统。此外,还标识了安装和运行 Application Server 所需的最小内存和建议的内存。

表 3 Sun Java System Application Server 8.1 2005Q4 平台要求 

操作系统

最小内存

建议的内存

最小磁盘空间

建议的磁盘空间

JVM

Microsoft Windows 2000 SP4

512 MB

1 GB

250 MB 可用空间

500 MB 可用空间

JDK 1.5.0.04

Microsoft Windows 2003 Enterprise Server

1 GB

2 GB

250 MB 可用空间

500 MB 可用空间

JDK 1.5.0.04

Microsoft Windows XP

1 GB

2 GB

250 MB 可用空间

500 MB 可用空间

JDK 1.5.0.04

要查看您的操作系统版本,请使用 ver 命令。要查看磁盘空间,请使用 mem 命令。

JDBC 驱动程序和数据库

Sun Java System Application Server 支持使用相应的 JDBC 驱动程序连接任何 DBMS。有关经 Sun 测试发现适合构建符合 J2EE 规范的数据库配置的组件列表,请参阅下表:

表 4 JDBC Drivers and Databases

JDBC 供应商

JDBC 驱动程序类型

支持的数据库服务器

i-net Software

类型 4

Oracle (R) 8.1.7, 9i, 9.2.0.3
Sybase ASE 12.5.2
Microsoft SQL Server 2000 4.0 Service Pack 1

IBM

类型 2

IBM DB2 8.1 Service Pack 3+

PointBase

类型 4

PointBase Network Server 4.8

DataDirect

类型 4

Oracle (R) 8.1.7, 9i, 9.2.0.3
Sybase ASE 12.5.2
Microsoft SQL Server
IBM DB2 8.1 Service Pack 3+

用于 Oracle 的 Sun Java System JDBC 驱动程序

类型 4

Oracle (R) 9.2.0.3, 10G

用于 DB2 的 Sun Java System JDBC 驱动程序

类型 4

IBM DB2 8.1 Service Pack 3+

用于 Sybase 的 Sun Java System JDBC 驱动程序

类型 4

Sybase ASE 12.5.2

用于 Microsoft SQL Server 的 Sun Java System JDBC 驱动程序

类型 4

Microsoft SQL Server 2000 4.0 Service Pack 1

Oracle

类型 4、类型 2

Oracle (R) 9.2.0.3, 10G

有关 i-net Software 的更多信息,请参见:

http://www.inetsoftware.de/

下表列出了支持的其他 JDBC 驱动程序,但是这些驱动程序与 J2EE 不兼容。

表 5 与 J2EE 不兼容的 JDBC 驱动程序

JDBC 供应商

JDBC 驱动程序类型

支持的数据库服务器

Oracle

类型 4

Oracle (R) 9.2.0.3, 10G

Sybase

jConnector

Sybase ASE 12.5.1

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

配置 Oracle

必须正确配置 Oracle JDBC 驱动程序才能与 J2EE 1.4 兼容。对类型 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 属性:

配置 PointBase

许多样例应用程序使用 Application Server 附带的 PointBase 数据库服务器。使用 Application Server Enterprise Edition 时,您必须先配置 PointBase 数据库服务器,然后才能使用该服务器。但是,在将 PointBase 与 Application Server 结合使用之前,请记下支持的配置组合。

表 6 支持的 J2SE/PointBase 组合

Application Server

PointBase

受支持

J2SE 5.0

J2SE 1.4.2

不受支持

J2SE 5.0

J2SE 1.4

J2SE 5.0

J2SE 1.4

配置 PointBase 的方法有两种:

若使用第一种方法,请执行以下步骤:

  1. 确保您已安装了要使用的 J2SE。
  2. 如果尚未安装,请下载 J2SE 1.4.2。

  3. 使用适于您的操作系统和 shell 的命令,将 JAVA_HOME 环境变量设置为 J2SE 的安装目录;例如:

若使用第二种方法,执行的过程将取决于操作系统。

Solaris 和 Linux

编辑 install_dir/pointbase/tools/serveroption/pbenv.conf 配置文件,将行:

PB_JAVA=%%%PB_JAVA%%%

其中 J2SE_location 为 J2SE 的安装目录。如果已随 Application Server 一起安装了 J2SE,则 J2SE 默认安装在 install_dir/jdk。进行此更改后,您可以使用 startserver 脚本启动 PointBase。

Windows

编辑 install_dir\pointbase\tools\serveroption\pbenv.bat 配置文件,将行:

set PB_JAVA=%%%PB_JAVA%%%

其中 J2SE_location 为 J2SE 的安装目录。如果已随 Application Server 一起安装了 J2SE,则 J2SE 默认安装在 install_dir\j2se1.4。进行此更改后,您可以通过运行 startserver.bat 来启动 PointBase。

Web 服务器

本节列出了 Sun Java System Application Server Enterprise Edition 8.1 2005Q4 支持的 Web 服务器。

表 7 支持的 Web 服务器

Web 服务器

版本

操作系统

Sun Java System Web Server

6.1 +

Solaris SPARC 8, 9, 10
Solaris x86 9, 10
Red Hat Enterprise Linux 2.1 Update 2, 3.0 Update 1

浏览器

本节列出了 Sun Java System Application Server Enterprise Edition 8.1 2005Q4 支持的浏览器。

表 8 支持的浏览器

浏览器

版本

Mozilla

1.4, 1.5, 1.6, 1.7.x

Netscape Navigator

4.79, 6.2, 7.0

Internet Explorer

5.5 Service Pack 2, 6.0

高可用性要求和限制

在配置 Sun Java System Application Server 高可用性组件之前,必须满足以下高可用性要求:

其他要求

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

相关文档

Sun Java System Application Server 文档集涵盖以下产品版本:

除非另行指定,否则不论本文档中提到哪个产品发行版,都表示上述两种发行版。

除了本发行说明以外,Application Server 组件还包含一套完整的文档,可以在以下位置找到:

下表总结了包含在 Application Server 核心应用程序文档集中的文档。

表 9 此文档集中包含的文档 

书名

说明

发行说明

软件和文档的最新信息。其中包括以表格形式对所支持的硬件、操作系统、JDK 和 JDBC/RDBMS 所做的全面概述。

快速入门指南

如何开始使用 Sun Java System Application Server 产品。

安装指南

安装 Sun Java System Application Server 软件及其组件。

部署规划指南

评估系统需求和企业状况,确保以最适合您的站点的方式部署 Sun Java System Application Server。此外还介绍了部署应用服务器时应该注意的常见问题。

Developer's Guide

创建和实现要在 Sun Java System Application Server 上运行的 Java™ 2 Platform, Enterprise Edition(J2EE™ 平台)应用程序,这些应用程序遵循针对 J2EE 组件和 API 的开放式 Java 标准模型。其中包括有关开发者工具、安全性、汇编、部署、调试和创建生命周期模块的一般信息。

J2EE 1.4 Tutorial

使用 J2EE 1.4 平台技术和 API 开发 J2EE 应用程序,并将这些应用程序部署到 Sun Java System Application Server。

管理指南

从管理控制台配置、管理和部署 Sun Java System Application Server 子系统和组件。

High Availability Administration Guide

有关高可用性数据库的安装后配置和管理说明。

Administration Reference

编辑 Sun Java System Application Server 的配置文件 domain.xml

Upgrade and Migration Guide

将应用程序迁移到新的 Sun Java System Application Server 编程模型,特别是从 Application Server 6.x 和 7 进行迁移。该指南还介绍了可导致与产品规范不兼容的相邻产品版本和配置选项之间的差异。

Performance Tuning Guide

调优 Sun Java System Application Server 以提高性能。

Troubleshooting Guide

解决 Sun Java System Application Server 问题。

Error Message Reference

解决 Sun Java System Application Server 错误消息。

Reference Manual

可用于 Sun Java System Application Server 的实用程序命令,以手册页样式编写。其中包括 asadmin 命令行界面。


此发行版中修复的错误

下表介绍了在 Application Server 8.1 2005Q4 中修复的错误。

表 10 在 Application Server 8.1 2005Q4 中修复的错误

错误号

说明

6295958

无法输入 AS 主密码,并且用户不知道主密码。

:在“安装期间自动配置”模式下,主密码将与管理员密码相同,而在“安装后手动配置”模式下,用户可在 CLI 中指定不同的密码。


重要信息

本节包括以下主题:

安装说明

有关修补程序要求和安装的信息,请参见以下部分:

修补程序要求信息

下表提供了校正修补程序的编号和最低版本。本部分引用的所有修补程序都是升级所需的最低版本。自本文档发布以来可能已经发布了新版本的修补程序。将在修补程序末尾使用不同的版本号来表示较新版本。例如:123456-04 是 123456-02 的较新版本,但它们具有相同的修补程序 ID。有关特殊说明,请参阅所列出的每个修补程序的 README 文件。

要访问这些修补程序,请转至 http://sunsolve.sun.com

表 11 Application Server 8.1 2005Q2 必需的校正修补程序(Windows 平台)

修补程序编号

修补程序描述

121533-01

Windows (MSI):Sun Java™ System Message Queue 3 2005Q4

121523-01

Windows (MSI):共享组件修补程序

121528-01

Windows (MSI):Sun Java™ System Application Server 8.1 2005Q2

有关将 Application Server 从 JES3 升级到 JES4 的过程的详细信息,请参阅位于 http://docs.sun.com/app/docs/doc/819-4461 的《Sun Java Enterprise System 2005Q4 Upgrade Guide for Microsoft Windows》。

兼容问题

在 Sun Java System Application Server Enterprise Edition 的下一个主要发行版中有以下不兼容问题:

Deploytool

Deploytool 将不再可用。NetBeans IDE 中提供相同的功能。有关更多信息以及要规划迁移,请参见用于 NetBeans 4.1 的 J2EE 1.4 教程,网址为 http://www.netbeans.org/kb/41/j2ee-tut/index.html

检验器

类加载器更改

在当前发行版中,可以在 JVM 系统类路径中找到添加到 domain.xml(应用服务器配置文件)的 classpath-prefixserver-classpathclasspath-suffix 属性中的 JAR 和目录条目。依赖于这种行为的应用程序可能会使用类 java.lang.ClassLoader 中的以下方法,来访问 JVM 系统类路径中的类或其他资源:

在下一个主要发行版中,添加到 classpath-prefixserver-classpathclasspath-suffix 中的 JAR 和目录条目在 JVM 系统类路径中将不再可用。如果应用程序使用上述方法之一,Sun 强烈建议使用无需假定资源包含在系统类路径中的等效方法。不依赖于 JVM 系统类路径的等效方法可在 java.lang.ClassLoader 中获得,并应尽量使用这些方法;例如:

示例:旧代码

java.net.URL url = ClassLoader.getSystemResource

("com/acme/tools/tools.properties");

示例:建议的更改

java.net.URL url = this.getClass().getClassLoader().getResource

("com/acme/tools/tools.properties");

如果不能更改此代码,可以选择使用下一个发行版中将添加的一个新配置选项,以便设置 JVM 系统类路径。

Web 服务安全性配置

使用 wss-client-config.xmlwss-server-config.xml 文件可以配置 Web 服务的安全性。请注意,这些配置文件的内容和名称不稳定,可能会更改。但等效的功能可以继续使用。

为残疾人士提供的辅助功能

欲获得自本介质发行以来所发布的辅助功能,请联系 Sun 索取有关 "Section 508" 法规符合性的产品评估文档,以便确定哪些版本最适合部署辅助功能解决方案。可通过以下网址获取应用程序的更新版本:http://sun.com/software/javaenterprisesystem/get.html

有关 Sun 在辅助功能方面所做出的努力,请访问 http://sun.com/access


已知问题和限制

本节介绍 Application Server Enterprise Edition 8.1 2005Q4(适用于 Microsoft Windows)的已知问题和限制。

本节介绍有关 Sun Java System Application Server Enterprise Edition 8.1 2005Q4 组件的已知问题和相应解决方法。如果汇总说明未指明特定平台,则所有平台都可能出现此问题。本部分信息按以下内容进行组织:

管理

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

错误号

摘要

6196993

无法恢复具有其他名称的备份域。

无法使用 backup-domainrestore-domain 命令镜像同一 Application Server 安装上的域,这是由于使用不同于原始名称的其他名称不能恢复域,即使 asadmin restore-domain 命令提供了重命名域的选项。重命名备份域似乎已成功,但尝试启动重命名的域却会失败,因为没有更改域配置中的条目,并且 startserv 和 stopserv 仍然使用原始域名来设置路径。

解决方法

用于 restore-domain 的域名必须与用于原始 backup-domain 命令的域名相同。Application Server 8.1 中的 backup-domain restore-domain 命令仅用于在同一台计算机上备份和恢复同一个域。

6200011

不支持启动带有附加 JMX 代理的 Application Server。

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

6236544, 6275436

负载平衡器配置文件不能随任何 Web 服务的端点 URL 创建。

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

解决方法

  1. 编辑 loadbalancer.xml 文件,按如下所示添加缺少的 Web 模块:
  2. <web-module context-root="context-root-name"

    disable-timeout-in-minutes="30" enabled="true"/>

  3. 用作为 EJB 提供的 Web 服务上下文根路径名称替换 context-root-name 的值。

应用程序客户机

本节介绍已知的应用程序客户机问题和相应的解决方法。

错误号

摘要

6193556

封装在应用程序客户机归档文件中的库 JAR 覆盖 MANIFEST 文件。

如果在您的客户机 JAR 中具有顶层 JAR 文件(在此情况下,为 reporter.jar),则当您部署客户机 JAR 时,该 JAR 的 MANIFEST 文件将覆盖客户机 JAR 的 MANIFEST 文件。

解决方法

目前尚无解决方法。

捆绑的 Sun JDBC 驱动程序

本节介绍已知的捆绑的 Sun JDBC 驱动程序问题和相应的解决方法。

错误号

摘要

6165970

如果两个并行事务正在运行并且其中一个已回滚,则当使用准备的语句进行更新时,结合使用 TRANSACTION_SERIALIZABLE 隔离级别和 Microsoft SQL Server 的捆绑 Sun 驱动程序的应用程序可能会挂起。

要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。有关配置连接池的详细信息,请参见管理指南。

解决方法

目前尚无解决方法。

6170432

PreparedStatement 错误。

描述 1

如果应用程序在一个事务中生成超过 3000 个 PreparedStatement 对象,DB2 可能会出现以下错误:

[sunm][DB2 JDBC 驱动程序] 没有其他可用语句。请重新创建软件包以使其具有较大的 dynamicSections 值。

解决方法 1

将以下属性添加到连接池定义中,以使驱动程序可以重新绑定具有较大动态段值的 DB2 软件包:

createDefaultPackage=true replacePackage=true

dynamicSections=1000

有关配置连接池的详细信息,请参见管理指南

描述 2

可能抛出的与上述 PrepardStatement 错误有关的其他错误消息如下所示:

[sunm][DB2 JDBC 驱动程序][DB2] 虚拟存储或数据库资源不可用。

解决方法 2

增大 DB2 服务器的配置参数 APPLHEAPSZ。最佳值为 4096。

描述 3

隔离级别 TRANSACTION_SERIALIZABLE。如果您的应用程序使用隔离级别 TRANSACTION_SERIALIZABLE 并使用上述建议的参数之一,它将可能会在获得连接时挂起。

解决方法 3

要为连接设置所需的隔离级别,必须以同一隔离级别创建相应的连接池。有关说明,请参见管理指南

6189199

使用捆绑的 Sun 驱动程序为 Sybase Adaptive Server 设置隔离级别时出现问题。

如果两个并行事务正在运行并且其中一个已回滚,则在使用准备好的语句进行更新时,结合使用 TRANSACTION_SERIALIZABLE 隔离级别和 Sybase Adaptive Server 的捆绑 Sun 驱动程序的应用程序可能会挂起。连接回滚失败,系统显示以下消息,并且已回滚的连接不能再使用:

java.sql.SQLException: [sunm][Sybase JDBC 驱动程序] 由于线的争用而无法提交请求

Sybase Adaptive Server 不支持 TRANSACTION_REPEATABLE_READ 隔离级别。但是在查询 DatabaseMetaData 时,捆绑的 Sun 驱动程序会返回数据库支持此隔离级别的内容。使用此隔离级别的应用程序将失败。

使用捆绑的 Sun 驱动程序的应用程序无法设置 TRANSACTION_READ_UNCOMMITTED 隔离级别。在首次访问 DataBaseMetaData 时,应用程序会抛出以下异常:

java.sql.SQLException: [sunm][Sybase JDBC 驱动程序][Sybase] 优化程序无法找到唯一的索引,它可以使用该索引对表 "sybsystemprocs.dbo.spt_server_info" 执行隔离级别为 0 的扫描。

解决方法

目前尚无解决方法。

连接器

本节介绍已知的 J2EE 连接器体系结构问题和相应的解决方法。

错误号

摘要

6188343

在重新启动 DAS 实例后,如果将级联设置为 false,取消部署连接器模块的操作将失败。

此方案中,已在 DAS 和连接器连接池中部署了独立或嵌入式连接器模块,并且已为该部署的模块创建了资源。在重新启动 DAS 实例后,如果将 cascade 设置为 false,取消部署连接器模块的操作将失败并且会出现以下异常:

[#|2004-10-31T19:52:23.049-0800|INFO|sun-appserver-ee8.1|javax.enterprise.system .core|_ThreadID=14;|CORE5023: 卸载应用程序时出错 [foo]|#]

解决方法

在重新启动 DAS 实例后,使用级联的取消部署(将 cascade 选项设置为 true)来取消部署独立连接器和嵌入式连接器。

文档

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

错误号

摘要

各种 ID

Javadoc 不一致。

缺少多个 AMX 接口和方法的 Javadoc 或该 Javadoc 不正确:

ConnectorConnectionPoolStatsAltJDBCConnectionPoolStats 中缺少用于获得 NumConnAcquiredNumConnReleased 统计信息的 Getter 方法。在以后的版本中,将以 getNumConnAcquired() getNumConnReleased() 的形式添加这些 getter 方法。

EJBCacheStats 中调用以下方法时抛出异常:getPassivationSuccesses(), getExpiredSessionsRemoved(), getPassivationErrors(), getPassivations()
在以后的版本中将修复此问题。

服务器启动后,可能需要几秒钟才能注册和使用所有的 AMX MBean。在以后的版本中,将可以确定完全装入 AMX MBean 的时间。

常数 XTypes.CONNNECTOR_CONNECTION_POOL_MONITOR 拼写错误 ("NNN")。在以后的版本中将纠正此问题。

6265624

捆绑的 ANT 会抛出 java.lang.NoClassDefFoundError

线程 "main" 中会抛出以下异常:java.lang.NoClassDefFoundError: org/apache/tools/ant/launch/Launcher

解决方法

建议不要对 Application Server 以外的对象使用捆绑的 ANT。

Lifecycle Management

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

错误号

摘要

6193449

ejb-timer-service 属性 minimum-delivery-interval 设置为 9000 之后,如果尝试将 ejb-timer-service 属性 redelivery-interval-in-mills 设置为 7000,会导致 set 命令失败并显示以下错误:

[echo] 正在执行管理任务 set
[exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery-Interval 应大于或等于 Minimum-delivery-interval-in-millis (9,000)]
[exec]
CLI137 命令 set 失败。

minimum-delivery-interval 是传送相同周期计时器之间的最小时间间隔。

redelivery-interval-in-mills 是计时器服务在 ejbTimeout 失败后再次尝试传送之前等待的时间。

问题在于描述重新传送时间间隔属性与最小传送时间间隔属性之间关系的逻辑不正确,使您无法使用 GUI 或 CLI 来设置使最小传送时间间隔大于重新传送时间间隔的任何值。

必须始终将 minimum-delivery-interval-in-millis 设置为等于或大于 ejb-timer-service 属性 redelivery-interval-in-millis。在 Application Server 中有一个错误的验证检查,用于验证 redelivery-interval-in-millis 的值是否大于 minimum-delivery-interval-in-millis 的值,这是产生上述问题的原因。

解决方法

使用这些属性的默认值,如下所示:

minimum-delivery-interval(default)=7000
redelivery-interval-in-millis(default)=5000

使用其他的值将导致产生错误。

日志记录

本节介绍已知的日志记录问题和相应的解决方法。

错误号

摘要

6180095

access,failure 设置调试语句会导致 Application Server 在启动时挂起。

为 JVM 设置 java.security.debug 选项将导致服务器实例启动停止并死锁;例如,在 domain.xml 中设置以下内容将导致出现此问题:<jvm-options>-Djava.security.debug=access,failure</jvm-options>

目前尚无解决方法。请避免设置此标志。

监视

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

错误号

摘要

6174518

某些 HTTP 服务监视统计信息不提供有用信息,应该被忽略。

查看 HTTP 服务的某些元素的监视统计信息时,显示的某些值与当前值并不对应或始终为 0。特别是,以下 HTTP 服务统计信息并不提供适用于 Application Server 的信息,应该被忽略:

http-service

load1MinuteAverage

load5MinuteAverage

load15MinuteAverage

rateBytesTransmitted

rateBytesReceived

pwc-thread-pool(元素)

解决方法

在以后的版本中,将删除这些监视器并将其替换为更适当的信息。

6191092

不会删除已取消部署的 EJB 模块的监视 MBean,即使该监视名称下的所有统计信息均已移动。

例如:

EJBModuleMonitorMap().size() = 1 即使 ejb 模块已取消部署 EJBModu

EJB 模块和应用程序都存在这个问题。以编程方式(通过 MBean API)和通过 asadmin list/get 执行操作后,空的监视 MBean 仍然存在。

诊断

asadmin list -m "server.applications" 显示以下输出:
server.applications.MEjbApp
server.applications.__ejb_container_timer_app
server.applications.adminapp
server.applications.admingui
server.applications.com_sun_web_ui
server.applications._export_install_nov-11_domains_domain1_applications_j2ee-

您可以查看统计信息:

bin/asadmin list -m "server.applications._expo
rt_install_nov-11_domains_domain1_applications_j2ee-modules_sqe_ejb_s1_01"
server.applications._export_install_nov-11_domains_domain1_applications_j2eeules_
sqe_ejb_s1_01.SQEMessage
server.applications._export_install_nov-11_domains_domain1_applications_j2eeules_
sqe_ejb_s1_01.TheGreeter

一旦您取消部署:

_export_install_nov-11_domains_domain1_applications_j2ee-modules_sqe_ejb_s1_0

如果执行 list 命令,您仍然可以看到应用程序:

 

 

asadmin list -m "server.applications"
server.applications.MEjbApp
server.applications.__ejb_container_timer_app
server.applications._export_install_nov-11_domains_domain1_applications_j2eeules_sqe_ejb_s1_01
server.applications.adminapp
server.applications.admingui
server.applications.com_sun_web_ui

但它不包含任何监视统计信息:

asadmin list -m "server.applications._expo
rt_install_nov-11_domains_domain1_applications_j2ee-modules_sqe_ejb_s1_01"
server.applications.-export-install-nov-11-domains-domain1 applications-j2ee-modules-sqe-ejb-s1-01 中未列出任何内容。

要获得以某个字符串开头的有效名称,请使用

通配符 ("*")。例如,要列出以 server 开头的所有可监视

实体的名称,请使用 list "server.*" 命令。

解决方法

这是没有危害的。可以安全地重新部署模块而不会出现任何问题。未删除根监视 Mbean,但它为空。

PointBase

本节介绍与 PointBase 有关的已知问题和相应的解决方法。

错误号

摘要

6184797

对应用程序的连接池设置隔离级别导致 PointBase 中出现异常。

对于指向 PointBase 数据库安装的 JDBC 连接池,将 transaction-isolation-level 池属性设置为默认值 (Connection.TRANSACTION_READ_COMMITTED) 以外的任何值都将导致异常。但是,对于指向其他数据库的池,将此参数设置为非默认值不会抛出异常。

解决方法

对于指向 PointBase 数据库安装的 JDBC 连接池,不要尝试设置 transaction-isolation-level。

6204925

如果同时使用网络服务器驱动程序和嵌入式驱动程序,PointBase 将抛出异常。

如果同时使用网络服务器驱动程序和嵌入式驱动程序,捆绑的 PointBase 有时会抛出异常。

解决方法

只使用嵌入式驱动程序或网络服务器驱动程序两者之一。

6264969,6275448

升级时会出现覆写默认 PointBase 数据库的问题

升级到 Application Server Enterprise Edition 8.1 2005Q2 Update 2 时,升级发行版修补程序会覆写 Pointbase 默认数据库。

解决方法

重新创建或重新输入升级之前存在的任何方案或数据。如果用具有生成表选项的 CMP Bean 来部署应用程序,则必须取消部署或重新部署应用程序,以便重新生成表。

样例

本节介绍与 Application Server 8.1 产品附带的样例代码有关的已知问题和相应的解决方法。

错误号

摘要

6195092

setup-one-machine-cluster 在 Windows 上会挂起,但在 Solaris 上可以正常工作;mqfailover 需要使用 Ctrl+C 组合键取消,然后必须重新运行。

如果从

install_dir\samples\ee-samples\failover\apps\mqfailover\docs\index.html 运行以下命令:

  • 控制台 1

    cd install_dir\samples\ee-samples asant start-mq-master-broker1

  • 控制台 2

    cd install_dir\samples\ee-samples asant start-mq-cluster-broker1

  • 控制台 3

    cd install_dir\samples\ee-samples asant start-mq-cluster-broker2

  • 控制台 4

    cd install_dir\samples\ee-samples asadmin start-domain domain1

如果已针对任何其他 Enterprise Edition 样例执行

asant setup-one-machine-cluster-without-ha 或 asant

setup-one-machine-cluster-with-ha

则请执行 asant configure-mq;否则请执行

asant setup-one-machine-cluster-and-configure-mq。在这种情况下,命令显示为成功:

start_nodeagent: [echo] 启动节点代理 cluster1-nodeagent [exec] Comman

但随后系统将无限期挂起。

解决方法

目前尚无解决方法。此问题同样会影响在 Windows 上使用此 ant 目标的所有 Enterprise Edition 样例。一个解决方法是按 Ctrl+C 组合键退出挂起的进程,然后重新运行它。

6198003

文档没有明确说明在执行 asadmin 部署指令之后,需要在运行 MQ 故障转移样例应用程序之前创建 JMS 资源。

抛出的错误如下:

Install_Location>\AppServer\domains\domain1\config\sun-acc.xml -name MQFailoverTestClient -t Nov 18, 2004 10:50:17 PM com.sun.enterprise.naming.NamingManagerImpl bindObjects SEVERE: NAM0006:未找到 JMS 目标对象:jms/durable/TopicA Nov 18, 2004 10:50:18 PM com.sun.enterprise.naming.NamingManagerImpl bindObjects SEVERE: javax.naming.NameNotFoundException javax.naming.NameNotFoundException

文档没有明确说明如果使用 asadmin deploy 命令进行了手动部署则必须手动创建 JMS 资源,并且应使用提供的 ant 目标来部署样例应用程序。

解决方法

将 asant 部署目标用于 build.xml 脚本,该脚本用于创建运行应用程序所需的 JMS 资源。

安全性

本节介绍与 Application Server 和 Web 应用程序安全性和证书有关的已知问题和相应的解决方法。

错误号

摘要

6183318

无法在 Enterprise Edition 上使用 J2SE 5.0 运行 WebServiceSecurity 应用程序。

无法使用 J2SE 5.0 运行 WebServiceSecurity 应用程序,原因是:

  • J2SE 5.0 PKCS11 不支持 UNWRAP 模式
  • J2SE 5.0 PKCS11 不支持

    使用 PKCS11 的 RSA/ECB/OAEPWithSHA1AndMGF1Padding

J2SE 小组已针对此错误归档&ldquo;CR 6190389:为 RSA-PKCS1 和 RSA-OAEP 包装/解包机制添加支持&rdquo;。

解决方法

使用带有任何其他 JCE 提供者(而不是默认包含的提供者)的 J2SE 1.4.2。请注意,此配置中将不提供对硬件加速器的支持。

Web Container

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

错误号

摘要

5004315

在 Windows 上,使用--precompilejsp=true 部署应用程序时,会锁定该应用程序中的 JAR 文件,从而导致以后无法取消部署或重新部署。

如果您在 Windows 上部署应用程序时要求预编译 JSP,则以后尝试取消部署该应用程序或重新部署该应用程序(或任何具有相同模块 ID 的应用程序)的操作将不会按预期进行。出现此问题的原因是:JSP 预编译会打开应用程序中的 JAR 文件,但不能关闭这些文件,Windows 将禁止执行取消部署或重新部署操作以避免删除或覆盖它们。

请注意,取消部署在某种程度上是成功的,因为应用程序会从 Application Server 中被逻辑删除。另外请注意,asadmin 实用程序不会返回任何错误消息,但应用程序的目录以及锁定的 jar 文件会保留在服务器中。服务器的日志文件将包含用于说明未能删除文件和应用程序的目录的消息。

在取消部署后尝试重新部署应用程序的操作会失败,这是由于服务器尝试删除现有文件和目录,而这些尝试也失败了。如果您尝试部署的应用程序所使用的模块 ID 与最初部署的应用程序的模块 ID 相同,会出现这种情况,这是由于服务器在选择目录名来保存应用程序的文件时会使用模块 ID。

如果没有先取消部署应用程序而尝试重新部署该应用程序,也将会由于同样的原因而失败。

诊断

如果尝试重新部署应用程序或在取消部署后部署它,asadmin 实用程序将返回一个类似如下的错误。

运行命令时出现异常。异常消息是: CL

解决方法

如果您在部署应用程序时指定--precompilejsps=false(默认设置),则不会出现此问题。请注意,第一次使用应用程序时会触发 JSP 编译,因此第一个请求的响应时间将会长于随后的请求的响应时间。

另外,请注意,如果您确实进行了预编译,则在取消部署或重新部署应用程序之前,应先停止并重新启动服务器。关闭服务器后将释放锁定的 JAR 文件,这样在重新启动服务器后,取消部署或重新部署便可以成功。

6172006

无法使用基于 Servlet 2.4 的 web.xml(包含空 <load-on-startup> 元素)来部署 WAR。

web.xml 中的可选 load-on-startup servlet 元素表示相关的 servlet 将在启动对其进行声明的 Web 应用程序期间被加载和初始化。

此元素的可选内容是一个整数,用于表示该 servlet 相对于 Web 应用程序的其他 servlet 而被装入和初始化的顺序。空 <load-on-startup> 表示顺序无关紧要,只要该 servlet 在其包含 Web 应用程序的启动期间被装入并进行了初始化就可以。

web.xml 的 Servlet 2.4 模式不再支持空 <load-on-startup>,这意味着在使用基于 Servlet 2.4 的 web.xml 时,必须指定一个整数。如果像在 <load-on-startup/> 中那样指定空 <load-on-startup>,则 web.xml 针对 web.xml 的 Servlet 2.4 模式的验证将会失败,从而导致 Web 应用程序的部署失败。

向下兼容性问题。指定空 <load-on-startup> 在基于 Servlet 2.3 的 web.xml 中仍起作用。

解决方法

在使用基于 Servlet 2.4 的 web.xml 时,指定 <load-on-startup>0</load-on-startup>,以表明 servlet 装入顺序无关紧要。

6184122

无法编译资源受限服务器上的 JSP 页面。

已访问 JSP 页面但是无法对其进行编译,并且服务器日志包含错误消息&ldquo;无法执行命令&rdquo;和以下堆栈跟踪:

at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.j

at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:427)

at org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExte

at org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute(JavacExterna

at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:842)

at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:682)

at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:396)

解决方法

将 JSP 编译开关 "fork" 设置为 "false"。

可以通过以下两种方式之一来实现:

  • 在全局范围内,通过在 ${S1AS_HOME}/domains/domain1/config/default-web.xml 中

将 JspServlet 的 fork init 参数设置为 false:

<servlet> <servlet-name>jsp</servlet-name>

<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> .... <

<param-name>fork</param-name> <param-value>false</param-value> </init-para

  • 在每个 Web 应用程序基础上,通过将 sun-web.xml 中的 fork JSP 配置属性设置为 false:

<sun-web-app> <jsp-config> <property name="fork" value="false" /> </jsp-co

以上任何一种设置都将阻止 ant 生成用于 javac 编译的新进程。

6188932

Application Server 不支持 auth-passthrough Web Server 6.1 附加软件。

Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Update 2 添加了对 Sun Java System Application Server Enterprise Edition 7.1 附带的 auth-passthrough 插件函数所提供功能的支持。但是,在 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中,auth-passthrough 插件功能的配置有所不同。

Application Server Enterprise Edition 7.1 中的 auth-passthrough 插件函数已经在两层部署方案中带来很大帮助,其中:

  • Application Server 实例受公司防火墙之后的第二层防火墙的保护。
  • 不允许客户机直接连接到 Application Server 实例。

在这种网络体系架构中,客户机连接到前端 Web 服务器,而该 Web 服务器配置有 service-passthrough 插件功能,会将 HTTP 请求转发到代理的 Application Server 实例以供处理。Application Server 只能从 Web 服务器代理接收请求,而决不会从任何客户机主机接收请求。因此,当部署在代理的 Application Server 实例上的任何应用程序查询客户机信息时,该应用程序将收到代理主机的信息(例如,当该应用程序查询客户机 IP 地址时,会收到代理主机的 IP),这是因为代理主机才是中继请求的真正发出主机。

在 Application Server Enterprise Edition 7.1 中,auth-passthrough 插件函数可在代理的 Application Server 实例上配置,以便使远程客户机信息能够直接由其上部署的所有应用程序使用,就像代理的 Application Server 实例直接接收了请求那样,而不是通过运行 service-passthrough 插件的中间 Web 服务器接收请求。

在 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中,通过将 domain.xml 中的 <http-service> 元素的 authPassthroughEnabled 属性设置为 TRUE,可以启用 auth-passthrough 功能,如下所示:

<property name="authPassthroughEnabled" value="true"/>

Application Server Enterprise Edition 7.1 中 auth-passthrough 插件函数的安全注意事项也同样适用于 Application Server Enterprise Edition 8.1 2005Q2 Update 2 中的 authPassthroughEnabled 属性。由于 authPassthroughEnabled 使我们能够覆盖可用于验证目的的信息(如发出请求的 IP 地址或 SSL 客户机证书),因此必须确保只有受信任的客户机或服务器才能连接到将 authPassthroughEnabled 设置为 TRUE 的 Application Server Enterprise Edition 8.1 2005Q2 Update 2 实例。作为一项预防措施,建议仅将公司防火墙之后的服务器的 authPassthroughEnabled 设置为 TRUE,而不要将可通过 Internet 访问的服务器的 authPassthroughEnabled 设置为 TRUE。

请注意,当代理 Web 服务器已配置了 service-passthrough 并且将请求转发到将 authPassthroughEnabled 设置为 TRUE 的 Application Server 8.1 Update 2 实例时,Web 服务器代理上可能启用了 SSL 客户机验证,而在代理的 Application Server 8.1 Update 2 实例上却禁用了该验证。在这种情况下,代理的 Application Server 8.1 Update 2 仍会将请求当作通过了 SSL 验证,并向部署在其上的发出请求的所有应用程序提供客户机 SSL 证书。

6314126

在 Windows 平台上安装或运行任何 Sun Application Server 时,系统要求文件系统为 NTFS,而非 FAT 或 FAT32。

负载平衡器

在“安装后手动配置”模式下配置负载平衡器时,用户必须在 CLI 中指定以下条目

ASConfigurator.properties 文件中,负载平衡器插件被配置为使用服务器中用于 AS_WSINSTANCENAME 的端口 1111 和 1112。在“安装后手动配置”模式下,必须在配置负载平衡器之前在命令行界面中指定以下条目:

解决方法

无。

将负载平衡器插件配置为使用端口 1111 和 1112

ASConfigurator.properties 文件中,负载平衡器插件默认情况下会配置为使用端口 11111112

解决方法

无。

Application Server 安装行为和 Application Server 组件与 JES 3 FCS Solaris/Linux 内部版本并不对应 (6290539)

在默认情况下,如果在 Windows 中选择 Application Server,则将选择其所有子组件。这是 MSI 的行为。用户必须取消选择不需要的特定子组件,例如负载平衡器和节点代理。

在 Windows 中,Application Server 与 HADB 具有强依赖性。因此在“安装期间自动配置”模式下,用户必须同时安装 Application Server 和 HADB。但用户可以在“安装后手动配置”模式下取消选择 HADB。

配置

在“安装后手动配置”模式下,初始配置程序不具有 GUI

在“安装后手动配置”模式下使用的初始配置程序不具备 GUI 支持。

解决方法

在“安装后手动配置”模式下,用户可以使用 CLI 来进行配置。

在“安装后手动配置”模式下配置 Application Server 时,用户必须接受 nodeagents 的默认设置 (6372244)

解决方法

在“安装后手动配置”模式下进行配置时,接受 Nodeagent 名称的默认值 (nodeagents)。

无法使用 –server 选项启动服务器 (6369978)

解决方法

<Application_Server_Home>\config\asenv.bat 文件中,将变量 AS_NATIVE_LAUNCHER_LIB_PREFIX 值中的正斜杠改为反斜杠

即,将值 /jre/bin/client 改为 \jre\bin\client

根据性能要求,用户也可以使用 \jre\bin\server

在“安装期间自动配置”模式下,Application Server 用作容器时,用于部署应用程序的实例名为 "Appserver1"。这与 Solaris 不同,它采用的实例名为 "server" (6287671)


可再分发的文件

Sun Java System Application Server Enterprise Edition 8.1 不包含任何可再分发的文件。


如何报告问题和提供反馈

使用以下资源处理使用 Application Server 产品时可能遇到的问题:

Sun 欢迎您提出意见

Sun 致力于提高其文档的质量,并十分乐意收到您的意见和建议。您可以通过以下网址提交您的意见和建议:

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

在您提出意见时,可能需要在表单中输入英文版书名和文件号码,本书的英文版文件号码和书名为:819-4264,《Sun Java System Application Server EE 8.1 2005Q4 Release Notes for Microsoft Windows》。


其他 Sun 资源

可以在以下 Internet 位置找到有用的 Sun Java System 信息:


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

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

SUN 专有/机密。

美国政府权利-商业软件。政府用户应遵循 Sun Microsystems, Inc. 的标准许可协议,以及 FAR(Federal Acquisition Regulations,即“联邦政府采购法规”)的适用条款及其补充条款。

必须依据许可证条款使用。

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

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

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