Sun Java System Message Queue 3.7 UR1 发行说明

第 1 章 Sun Java System Message Queue 3.7 UR1 发行说明

版本 3.7 UR1

文件号码 820-0488

本发行说明包含了发行 Sun Java™ System Message Queue 3.7 UR1 时可用的重要信息。本说明主要介绍新增功能和增强功能、已知问题和限制以及其他信息。在使用 Message Queue 之前,请先阅读本文档。

本发行说明的最新版本可以在 Sun Java System Message Queue 文档 Web 站点找到。请在安装和设置软件前仔细查阅此 Web 站点,完成安装和设置后也要定期查看最新的发行说明和产品文档。

本发行说明包含以下部分:

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

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

发行说明修订历史记录

表 1–1 修订历史记录

日期 

更改描述 

2006 年 8 月 

本文档的最初发行版。 

2007 年 2 月 

本文档的最终发行版。 

关于 Message Queue 3.7 UR1

Sun Java System Message Queue 是一种功能全面的消息服务,提供符合 Java Messaging Specification (JMS) 1.1 的可靠、异步的消息传送功能。此外,Message Queue 还提供 JMS 规范之外的许多功能,以满足大型企业部署的需要。

Message Queue 3.7 UR1 是 Message Queue 3.6 的维护版本,它包含错误修复和少量较小的增强功能。本部分包含以下信息:

此发行版的新增功能

Message Queue 3.7 UR1 包括以下新功能:

这些功能将在以下各部分中进行描述。

将 Platform 功能和 Enterprise 功能合并在一个版本中

为了简化产品交付过程,我们将 Sun Java Message Queue 的 Platform Edition 和 Enterprise Edition 进行了合并。从 Message Queue 3.7 UR1 开始只提供一个版本,这样可有效排除独立发行版中的功能限制。希望此举能简化您对本产品的体验。

合并版本还可以使 Message Queue 与 Solaris Enterprise System 更好地配合使用,并提供一种持久而广泛的权限,使您可以在无需支持、维护或功能补充的情况下使用 Enterprise Edition 功能。与以前版本相同,我们将继续提供用于支持和维护服务的多种授权选项。Message Queue 仍将与 Java Enterprise System 和 Application Platform Suite 打包在一起。请查看在线商店(网址为 http://www.sun.com)或与销售代表联系,以找到最适合您的选项。下表描述了新单一版本的 Message Queue 的升级途径。

表 1–2 Message Queue 3.7 UR1 的升级途径

以前版本 

升级途径 

注释 

Platform Edition 

Sun Java System Message Queue 3.7 UR1 

现在 3.7 UR1 用户可使用所有功能(Platform 和 Enterprise)。购买许可证后就会提供支持选项。 

Enterprise Edition 

Sun Java System Message Queue 3.7 UR1 

未更改任何功能。提供一定范围的授权和支持选项。 

Platform Edition 支持合同 

升级到 Enterprise Edition 支持合同 

将继续续订先前发行的 Platform Edition 的现有支持合同。不会为先前发行的 Platform Edition 发布新的 Platform Edition 合同。 

Enterprise Edition 支持合同 

无更改 

继续续订现有合同。将会发布新的合同。 

下表描述了各种 Message Queue 产品交付来源的更改。

表 1–3 Message Queue 产品交付来源的更改

产品 

以前的交付来源 

新的交付来源 

注释 

Open Message Queue 

不适用 

Sun 下载中心产品页面 

独立下载。仅支持社区。不提供支持合同。 

Message Queue Platform Edition 

Sun 下载中心(通过 Message Queue 产品页面) 

不再可用 

现在仅提供结合了 Platform 和 Enterprise 功能的单一 Message Queue 版本。 

Message Queue Enterprise Edition 试用版(通过 Platform Edition) 

Sun 下载中心(通过 Message Queue 产品页面) 

不再需要试用版许可证 

不再需要 

Message Queue Enterprise Edition 90 天试用版(通过 Java Enterprise System 下载或 CD) 

Java Enterprise System 下载中心,早于版本 3 GA(2006 年 3 月) 

Solaris Enterprise System 下载中心 

Solaris Enterprise System 许可证。具有产品许可证就会提供支持选项。(不再需要 90 天试用许可证。) 

Message Queue Enterprise Edition(通过 SunStore、CD、单个许可证、Java Enterprise System 许可证、Suite 许可证以及通过 Java Enterprise System 提供) 

Java Enterprise System 或 Suite 下载中心、介质 

Solaris Enterprise System 或 Suite 下载中心、介质提供 

无更改。 

对 C-API 和 C 客户端运行时环境的接口更改

持久性存储库格式更改

为了提高性能,已对 Message Queue 的持久性存储库格式进行了两处更改。一处是对文件存储库的更改,另一处是对 JDBC 存储库的更改。

由于这些更改会影响存储库兼容性,因此存储库版本已由 350 更改为 370。Message Queue 3.7 UR1 支持将持久性存储库从旧的 200 和 350 版本自动转换为 370 版本(同时适用于 JDBC 存储库和基于文件的存储库)。imqbrokerd 首次启动时,如果实用程序检测到早期版本的存储库,则会将存储库迁移到新格式,并留下早期的存储库。

如果需要回滚此升级,可以先卸载 Message Queue 3.7 UR1,然后重新安装以前运行的版本。由于未对存储库的早期副本进行任何更改,因此代理可以运行存储库的早期副本。

硬件和软件要求

Sun Java Enterprise System 安装指南中提供了 Message Queue 的硬件和软件要求。

使用 Solaris 10 区域

区域是一种 Solaris Container 技术,该技术可以在计算机上提供独立的环境,并在逻辑上使应用程序之间彼此分隔。区域允许您在 Solaris 操作系统实例中创建虚拟的操作系统环境。在不同区域中运行应用程序时,您可以在相同的计算机上运行同一应用程序的不同实例或不同版本,同时对资源进行集中管理和有效共享。

本部分对区域进行了简要描述,并说明了它们在 Message Queue 3.7 UR1 中的使用情况。

区域基本知识

区域环境包括一个全局区域以及一个或多个非全局区域。首次在系统上安装 Solaris 10 时,只有一个全局区域。管理员可以创建其他非全局区域作为全局区域的子区域。每个区域都显示为运行 Solaris 的独立系统。每个区域都有其各自的 IP 地址、系统配置、运行应用程序的实例,以及文件系统上的位置。

全局区域包含可以在非全局区域之间共享的资源,从而可以将某些管理功能集中起来。例如,在全局区域中安装的软件包可用于(传播到)所有现有的非全局区域。这样可以集中执行生命周期管理(如安装、升级和卸载)。同时,非全局区域所提供的分隔功能也带来了更高的安全性,并允许您在相同的计算机上运行同一应用程序的不同配置的实例或不同版本。

非全局区域可以是完全根区域,也可以是稀疏根区域:选择哪种区域作为应用程序的环境取决于如何平衡管理控制和资源优化。

Java Enterprise System 区域限制

组成 Java Enterprise System 的组件依赖于某些共享组件;这在使用区域方面造成了一些限制。在区域环境中,共享组件必须遵循以下规则。

由于 Message Queue 是 Java Enterprise System 的组件产品,因此上述要求会影响其安装,进而会限制其区域使用。


注 –

Message Queue 产品将被安装到 /usr 目录中,因此必须先在全局区域中进行安装或升级。


Message Queue 案例

在全局区域中安装 Message Queue 时,它将被设置为传播到所有非全局区域。在全局区域中安装 Message Queue 之后,即在所有区域中安装了同一版本的 Message Queue:如果您登录到任意区域并运行命令 pkginfo -l SUNWiqu,您会看到 Message Queue 已被安装,并且与全局区域中安装的版本相同。接下来可以在每个区域中运行独立的 Message Queue 代理实例,因为这些实例进程并不共用 /var/etc 目录中保存的实例和配置数据。(如果其他大多数 Java Enterprise System 组件都安装在全局区域,则不会传播这些组件。)

由于 Message Queue 将被传播到非全局区域,因此全局实例将始终链接到非全局区域中的安装。这样,无论您何时在全局区域中卸载或升级 Message Queue,它都会对非全局区域中运行的实例造成影响。以下示例说明这样做如何导致可能的意外结果。

  1. 在全局区域中安装 Message Queue 3.7 UR1。这会导致同时将 Message Queue 3.7 UR1 软件包安装到所有非全局区域中。

  2. 在完全根区域中卸载 Message Queue 3.7 UR1。然后在完全根区域中安装 Message Queue 3.6。

    现在,不同区域中将运行不同版本的 Message Queue,您可能会发现这种设置非常有用。

  3. 在全局区域中卸载 Message Queue 3.7 UR1。这将从所有其他区域中卸载 Message Queue,包括完全根区域中的 Message Queue 3.6 实例。

请注意在全局区域中安装和卸载 Message Queue 的级联效应。

以下两个使用案例说明了如何在不同区域中安装 Message Queue 的不同实例和不同版本。


注 –

如果要在 Solaris 10、Solaris 10U1 或 Solaris 10U2 上的完全根区域中安装 Message Queue,则必须先在全局区域中升级 Lockhart。请查看错误 645030 的解决方法,以获取其他信息。


Procedure在不同区域中安装相同版本的 Message Queue

  1. 在全局区域中安装所需版本的 Message Queue。

    这些版本将传播到任何现有的非全局区域中。如果创建了其他的非全局区域,则 Message Queue 也将传播到这些区域中。(您既可以在完全根区域中安装不同实例,也可以在稀疏根区域中安装不同实例,但使用稀疏根区域可以更有效地利用磁盘空间和其他资源)。

  2. 如果您希望 Message Queue 传播到任何其他非全局区域中,请立即创建这些区域。

  3. 在每个非全局区域中运行 Message Queue 的实例。

Procedure在不同区域中安装不同版本的 Message Queue

  1. 从全局区域中卸载 Message Queue。

  2. 创建完全根区域,并在创建区域时使用以下指令,将每个区域都配置为不共用 /usr 目录:

    remove inherit-pkg-dir dir=/usr
  3. 在每个完全根区域中安装不同版本的 Message Queue。


    注 –

    请记住,在全局区域中安装或卸载 Message Queue 将会影响完全根区域中运行的 Message Queue 的所有实例(和版本)。


此发行版中修复的错误

此发行版中修复的错误介绍了 Message Queue 3.7 UR1 中已修复的错误。

表 1–4 在 Message Queue 3.7 UR1 中修复的错误

错误号 

描述 

6193884 

在需要非 ASCII 字符来显示消息的语言环境下,Message Queue 向系统日志输出垃圾消息。 

6251450 

在群集关闭过程中,connectList 抛出 ConcurrentModificationException

6252763 

java.nio.HeapByteBuffer.putLong/Int 中出现 java.nio.BufferOverflowException

6260076 

使用 Oracle 存储库,在代理启动后的第一条消息发布完后,消息发布速度变得很慢。 

6260814 

JMSXUserID 进行处理的选择器始终得到 false 值。

6264003 

队列浏览器显示属于尚未提交的事务的消息。 

6271876 

关闭具有未使用消息的使用方时,连接流控制无法正常工作。 

6284769 

QueueBrowser 泄漏内存,即使为每个枚举创建一个新浏览器然后关闭该浏览器时也是如此。 

6294767 

Message Queue 代理需要在其打开的网络套接字上设置 SO_REUSEADDR

6304043 

代理不会验证共享非长期订阅的 clientID 是否为非 Null。

6307056 

Txn 日志成为性能瓶颈。 

6320138 

Message Queue C API 无法确定回复标头中的队列名称。 

6320325 

即使在 Solaris 上同时安装了 JDK 1.4 和 JDK 1.5,代理有时也会选取前者。 

6321117 

多代理群集初始化抛出 java.lang.NullPointerException

6330053 

从订户提交事务时,JMS 客户端运行时环境抛出 java.lang.NoClassDefFoundError

6340250 

支持 C-API 中的 MESSAGE 类型。

6351293 

添加对 Derby 数据库的支持。 

6381693 

对于重新传送到远程使用方(在该使用方的代理重新启动后)的消息,JMSRedelivered 标志设置为 false。

6388049 

无法清除不完整的 XA 事务。 

6403968 

添加基于使用方的流控制协议,以实现多个接收者的负载平衡。 

6403958 

当停用消息队列尝试删除最早的非持久性消息时引发代理异常。 

6406862 

发生代理错误 Monitor destination errormq.metrics.destination.queue.Name 后无法监视任何目的地

6415068 

在 AS 8.1 UR2(JMS Message Queue 的通用资源适配器)中事务恢复失败。 

6421781 

支持使用以下语法连接到代理 

—b mqtcp://hostName:portNumber/serviceName

6423696 

Session.rollback 实际上不会在 COMMIT REPLY 错误之后回滚已使用的消息。

重要信息

本部分介绍核心产品文档中未包括的最新信息。本部分包含以下主题:

安装说明

有关预安装说明的信息,以及在 Solaris、Linux 和 HPUX 平台上安装 Message Queue 产品(与 Java Enterprise System 捆绑在一起)的所有其他相关信息,请参阅 Sun Java Enterprise System 安装指南

有关在 Solaris、Linux、HPUX 和 Windows 平台上升级到 Message Queue(作为 Java Enterprise System 的一部分)的升级和迁移说明的信息,请参阅 Sun Java Enterprise System 升级和迁移指南

兼容性问题

本部分包含 Message Queue 3.7 UR1 中的兼容性问题。

接口稳定性

Message Queue 使用的许多接口可能会随着时间的变化而发生更改。《Sun Java System Message Queue 3.7 UR1 管理指南》中的附录 B “Stability of Message Queue Interfaces”根据稳定性对接口进行了分类。接口越稳定,在产品的后续版本中对其进行更改的可能性就越小。

与 Message Queue 的下一个主要发行版相关的问题

在 Message Queue 下一个主要发行版中进行的某些更改可能会导致您的客户端与该发行版不兼容。现在提供此信息是为了让您针对这些更改做好准备。

Message Queue 3.7 UR1 的文档更新

以下部分介绍对 Message Queue 文档的更新和更改,而不是较小的更正和增补。

适用于 C 客户端的开发者指南

《Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients》已更新,以反映添加了 MQGetDestinationName 函数、MQ_Message 消息类型和 MQ_UPDATE_RELEASE_PROPERTY 连接属性。

适用于 Java 客户端的开发者指南

《Sun Java System Message Queue 3.7 UR1 Developer’s Guide for Java Clients》已更新,包含了有关设置安全客户端、以及客户端如何处理自动重新连接期间所发生的异常的信息。

管理指南

《Sun Java System Message Queue 3.7 UR1 管理指南》已更新,提供了有关代理数据库表以及将代理配置为使用固定端口的信息。

已知问题和限制

本部分包含了 Message Queue 3.7 UR1 中已知问题的列表。涵盖以下产品领域:

有关当前错误、错误的状态和解决方法的列表,Java Developer Connection™ 成员应参见 Java Developer Connection Web 站点上的 Bug Parade 页。在报告新的错误之前请先查看该页。虽然未列出所有的 Message Queue 错误,但如果您想了解是否已报告了某个问题,可以将该页作为一个很好的起点。

http://bugs.sun.com/bugdatabase/index.jsp


注 –

可以免费获得 Java Developer Connection 成员资格,但需要进行注册。有关如何成为 Java Developer Connection 成员的详细信息,请访问 Sun 的 "For Developers" Web 页。


要报告新错误或提交功能请求,请向 imq-feedback@sun.com 发送电子邮件。

一般问题

LDAP 用户系统信息库属性

在 Message Queue 3.7 UR1 中,在 config.properties 文件的注释部分给出了将 LDAP 服务器用作用户系统信息库的示例代理配置,而 default.properties 文件中的 LDAP 用户系统信息库示例已被注释掉。

如果您以前使用示例 LDAP 用户系统信息库属性(在 default.properties 文件中指定)中的任何属性值,则当您的 JMS 应用程序客户端尝试创建 JMS 连接时,将会收到安全异常。升级到 Message Queue 3.7 UR1 之后将会发生这种情况。

当 JMS 客户端尝试连接到 Message Queue 3.7 UR1 代理时,代理日志中会记录一个错误,且 JMS 客户端会收到以下异常:

SecurityException.
20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property
.uidattr not defined for authentication type 
basic:com.sun.messaging.jmq.auth.LoginException: 
[B4064]: Ldap repository ldap property .uidattr not defined 
for authentication type basic

解决方法 请按照《Sun Java System Message Queue 3.7 UR1 管理指南》中的第 7  章 “Managing Security”中的说明来设置代理属性 imq.user_repository.ldap.uidattr

代理群集

以下各项内容与代理群集的使用相关。

管理/配置

以下是有关管理和配置 Message Queue 的问题。

代理问题

以下问题将影响 Message Queue 代理。

文档

没有适用于 Message Queue 3.7 UR1 Beta 版的独立产品。因此,对于此发行版,必须使用 Java Enterprise System 安装程序安装 Message Queue,并参阅 Sun Java System 安装指南以获取相关说明。

可再分发的文件

Sun Java System Message Queue 3.7 UR1 中包含以下一组文件,您可以使用这些文件,并以二进制格式自由分发它们:

jms.jar

libmqcrt.so (UNIX)

imq.jar

libmqcrt.so (HPUX)

imqxm.jar

mqcrt1.dll (Windows)

fscontext.jar

 

此外,还可以再分发 LICENSECOPYRIGHT 文件。

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

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

http://sun.com/software/javaenterprisesystem/get.html

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

如何报告问题和提供反馈

如果您在使用 Sun Java System Message Queue 期间遇到问题,请通过以下方式与 Sun 客户支持部门联系:

为了更好地帮助您解决问题,请在联系支持部门时提供以下信息:

Sun Java System 软件论坛

以下位置提供了一个 Sun Java System Message Queue 论坛:

http://swforum.sun.com/jive/forum.jspa?forumID=24

我们欢迎您的参与。

Java 技术论坛

您可能会对 Java 技术论坛中的 JMS 论坛感兴趣。

http://forum.java.sun.com

Sun 欢迎您提出意见

Sun 致力于提高其文档的质量,并十分乐意收到您的意见和建议。

要共享您的意见,请访问 http://docs.sun.com,然后单击“发送意见”(Send Comments)。在联机表单中提供文档标题和文件号码。文件号码包含七位或九位数字,可在书的标题页或在文档顶部找到该号码。例如,本书的标题为《Sun Java System Message Queue 3.7 UR1 发行说明》,文件号码为 820-0488。

提出意见时您还需要在表格中输入文档的英文文件号码和标题。本文档的英文文件号码是 819-4465,文档标题为《Sun Java System Message Queue 3.7 UR1 ReleaseNotes》。

其他 Sun 资源

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