Sun Java System Message Queue 4.2 发行说明

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

版本 4.2

文件号码 820-5643

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

本发行说明还包含有关 Message Queue 4.0 和 4.1 发行版的信息:有关这些发行版中引入的功能的信息,请分别参见Message Queue 4.0 的新增功能Message Queue 4.1 的新增功能

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

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

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

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

发行说明修订历史记录

下表列出了 Message Queue 产品的所有 4.x 发行版的发行日期,并描述了此文档中与每个发行版关联的更改。

表 1–1 修订历史记录

日期 

更改描述 

2006 年 5 月 

此文档针对 Message Queue 4.0 的初始发行版。 

2007 年 1 月 

此文档针对 Message Queue 4.1 Beta 的初始发行版。增加了 JAAS 支持说明。 

2007 年 4 月 

此文档针对 Message Queue 4.1 Beta 的第二个发行版。增加了高可用性功能。 

2007 年 9 月 

此文档针对 Message Queue 4.1 的第三个发行版。增加了 Java Enterprise System 监视框架、固定 C 端口、错误修复程序以及其他功能的支持说明。 

2008 年 4 月 

此文档针对 Message Queue 4.2 的第一个草稿发行版。添加了该发行版的新增功能。 

安装或升级到 Message Queue 4.2

可以执行全新的 Message Queue 4.2 安装,也可以使用 Message Queue 4.2 安装程序从 Message Queue 3.6 或更高版本进行升级。《Sun Java System Message Queue 4.2 Installation Guide》中介绍了与在 Solaris、Linux 和 Windows 平台上进行安装或升级相关的过程和所有其他信息,该指南尚未针对 Message Queue 4.2 进行更新。

如果要从早于 Message Queue 3.6 的版本进行升级,请参阅《Sun Java Enterprise System 5 Upgrade Guide for UNIX》《Sun Java Enterprise System 5 Update 1 Upgrade Guide for UNIX》

另外,请查看安装问题以了解已知的安装和升级问题及限制。

Message Queue 4.2 支持的平台和组件

本部分介绍了以下有关 Message Queue 4.2 系统要求的主题:

操作系统平台支持

Solaris、Linux 和 Windows 操作系统平台均支持 Message Queue 4.2。表 1–2 显示了支持的各个平台版本。有关每个平台的硬件要求,请参见《Sun Java System Message Queue 4.2 Installation Guide》

表 1–2 支持的平台版本

平台 

支持的版本 

Solaris 

Solaris 9 (SunOS 5.9) 及所有更新(SPARC、x86)

Solaris 10 (SunOS 5.10) 及所有更新(SPARC、x86、x64)

Linux 

Red Hat Enterprise Linux Advanced Server 3.0、4.0、5.0 及所有更新,32 位和 64 位版本(x86、x64)

Red Hat Enterprise Linux Enterprise Server 3.0、4.0、5.0 及所有更新,32 位和 64 位版本(x86、x64)

Windows 

Windows Vista 

Windows XP Professional SP2 (x86) [不支持 Home、Tablet PC 或 Media Center Edition]

Windows 2000 Advanced Server SP4 (x86) [不支持 Professional Edition 或 Server Edition]

Windows Server 2003 Standard Edition 和 Enterprise Edition SP2,32 位和 64 位版本(x86、x64) [不支持 Web Edition 或 Small Business Server Edition]

系统虚拟化支持

系统虚拟化是一项技术,可以利用该技术在共享硬件上单独执行多个操作系统 (Operating System, OS) 实例。从功能上讲,在虚拟化环境中托管的 OS 上部署的软件通常并不知道基础平台已被虚拟化。Sun 采用所选的系统虚拟化和 OS 组合对其 Sun Java System 产品进行了测试,以帮助验证 Sun Java System 产品是否像在非虚拟化系统中一样,仍可以在正确设置规模并进行相应配置的虚拟化环境中正常工作。有关 Sun 在虚拟化环境中提供的 Sun Java System 产品支持的信息,请参见 http://download.oracle.com/820-4651

组件相关性

除了特定于平台的要求以外,Message Queue 4.2 还依赖于某些基本组件,必须安装这些组件才能开发和运行 Message Queue 客户端。表 1–3 介绍了这些组件。此外,也可以使用其他版本或供应商实现,但由于它们未经 Sun Microsystems 测试,因此不能获得正式支持。


注 –

在 Message Queue 安装程序中,您可以选择现有 JDK/JRE 或安装 JDK 版本 (1.5.0_15)。


表 1–3 所需的支持组件

组件 

支持 

支持的版本 

Java Runtime Environment (JRE)

Message Queue 代理和管理工具 

J2SETM Runtime Environment 1.5.0_15 或更高版本

JavaTM SE Runtime Environment 1.6.0

(仅限 Sun Microsystems 版本) 

Java Software Development Kit (JDK) Standard Edition

Java 客户端开发和部署 

J2SE Development Kit 1.5.0_15 或更高版本 

Java SE Development Kit 1.6.0

(仅限 Sun Microsystems 产品版本) 

表 1–4 显示了一些额外的组件,可以安装这些组件以便为 Message Queue 客户端提供其他支持。您可能并不需要列出的所有组件:例如,如果不编写 C 客户端,则将不需要 C 编译器、C++ 运行时库、NSPR 或 NSS。

表 1–4 可选的支持组件

组件 

支持 

支持的版本 

应用服务器 

HTTP/HTTPS

Sun Java System Application Server Enterprise Edition 版本 9.1 Update Release 2 

Web 服务器 

HTTP/HTTPS

Sun Java System Web Server Enterprise Edition 版本 7.0 Update 2 

数据库 

基于 JDBC 的数据存储库 

HADB 版本 4.4.3.5

Java DB (Apache Derby) 版本 10.2.2

MySQL Community Edition 版本 5.0 

Oracle10g 

postgreSQL 版本 8.1 


注 –

不再支持 PointBase 数据库。


高可用性数据库 

高可用性代理群集 

HADB 版本 4.4.3.5

MySQL Cluster Edition 版本 5.0 

Oracle10g 

轻量目录访问协议 (Lightweight Directory Access Protocol, LDAP) 目录服务器

Message Queue 用户系统信息库和受管理对象 

Sun Java System Directory Server 版本 6.0 

Java 命名和目录接口 (Java Naming and Directory Interface, JNDI)

受管理对象支持和 LDAP 用户系统信息库

JNDI 版本 1.2.1

LDAP Service Provider 版本 1.2.2

File System Service Provider 版本 1.2 Beta 3 [仅提供受管理对象支持;支持进行开发和测试,但不支持在生产环境中进行部署]

C 编译器和兼容 C++ 运行时库 

Message Queue C 客户端 

Solaris:Sun Studio 版本 11 或更高版本、C++ 编译器(使用标准模式)和 C 编译器

Linux:gcc/g++ 版本 3.2.3

Windows:Microsoft Windows Visual C++ 版本 6.0 SP3

Netscape Portable Runtime (NSPR)

Message Queue C 客户端 

版本 4.7–1 [作为共享软件包捆绑在下载包中]

Network Security Services (NSS)

Message Queue C 客户端 

版本 3.11.9–1

Message Queue 4.2 和较新发行版的新增功能

以下各部分介绍了 Message Queue 4.2、4.1 和 4.0 的新增功能:

Message Queue 4.2 的新增功能

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

Message Queue 4.2 是一个次要发行版,其中包含很多增强功能和错误修复程序。本部分介绍了如何安装或升级到 Message Queue 4.2,并说明了此发行版中包含的新增功能:

有关 Message Queue 4.0 和 4.1 中引入的功能的信息,请分别参见Message Queue 4.0 的新增功能Message Queue 4.1 的新增功能

为发布者或订阅者提供多个目的地

在 Message Queue 4.2 中,发布者现在可以将消息发布到多个主题目的地;订阅者可以使用多个主题目的地中的消息。此功能是通过使用包含通配符的主题目的地名称(表示多个目的地)来实现的。通过使用此类符号名称,管理员可以根据需要创建与通配符命名方案保持一致的其他主题目的地。发布者可自动将消息发布到所添加的目的地,订阅者可自动使用其中的消息。(通配符主题订阅者比发布者更常见。)


注 –

此功能不适用于队列目的地。


符号主题目的地名称的格式包含多个段,其中通配符(*、 ** 和 >)可以表示名称中的一个或多个段。例如,假定主题目的地命名方案如下所示:

size.color.shape

其中,主题名称段可以具有以下值:

Message Queue 支持以下通配符:

因此,可以采用以下方式表示多个主题目的地:

large.*.circle 表示:

large.red.circle
large.green.circle
...

**.square 表示以 .square 结尾的所有名称,例如:


small.green.square
medium.blue.square
...

small.> 表示以 small. 开头的所有目的地名称,例如:


small.blue.circle
small.red.square
...

要使用此多目的地功能,请采用与上述类似的命名方案创建主题目的地。之后,客户端应用程序便可使用符号目的地名称创建发布者或使用方。例如:

...
String DEST_LOOKUP_NAME = "large.*.circle";
Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicPublisher myPublisher = mySession.createPublisher(t)
myPublisher.send(myMessage);
...
String DEST_LOOKUP_NAME = "**.square";
Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicSubscriber mySubscriber = mySession.createSubscriber(t);
Message m = mySubscriber.receive();

在第一个示例中,代理将消息副本放在与符号名称 large.*.circle 匹配的所有目的地中。在第二个示例中,如果至少有一个目的地与符号名称 **.square 匹配,则会创建一个订阅者,它将从与该符号名称匹配的所有目的地中接收消息。如果没有与该符号名称匹配的目的地,则在此类目的地出现后,才会创建订阅者。

如果管理员创建与某个符号名称匹配的其他目的地,则使用此符号名称创建的通配符发布者随后会将消息发布到该目的地,使用此符号名称创建的通配符订阅者随后将从该目的地中接收消息。

此外,Message Queue 管理工具除了报告主题目的地的发布者(生成方)和订阅者(使用方) 总数外,还会报告通配符发布者(包括对应的符号目的地名称)和通配符订阅者(包括对应的符号目的地名称)数(如果有)。

XML 有效负荷消息的模式验证

通过使用 Message Queue 4.2 中的此新功能,可以在将消息发送到代理时针对 XML 模式验证文本(不是对象)XML 消息的内容。XML 模式 (XSD) 位置是作为 Message Queue 目的地属性指定的。如果未指定 XSD 位置,则使用 XML 文档中的 DTD 声明来执行 DTD 验证。(XSD 验证包括数据类型和值范围验证,它比 DTD 验证更严格。)

使用此新功能的客户端应用程序应将 Java SE 版本升级到 JRE 1.5 或更高版本。

要启用 XML 模式验证,请设置以下物理目的地属性:

表 1–5 用于 XML 模式验证的物理目的地属性

属性 

类型 

默认值 

描述 

validateXMLSchemaEnabled

Boolean 

false

是否启用 XML 模式验证? 

如果设置为 false 或未进行设置,则不会为目的地启用 XML 模式验证。

XMLSchemaURIList

String 

null 

以空格分隔的 XML 模式文档 (XML Schema Document, XSD) URI 字符串列表 

这些 URI 指向用于 XML 模式验证(如果启用)的一个或多个 XSD 的位置。 

如果指定多个 URI,应使用双引号将该值引起来。 

示例: 

"http://foo/flap.xsd http://test.com/test.xsd"

如果未设置此属性或将其设置为 null,并且启用了 XML 验证,则使用在 XML 文档中指定的 DTD 来执行 XML 验证。 

reloadXMLSchemaOnFailure

Boolean 

false

是否在失败时重新装入 XML 模式? 

如果设置为 false 或未进行设置,则不会在验证失败时重新装入该模式。 

在启用 XML 验证后,Message Queue 客户端运行时环境将尝试针对指定的 XSD(如果未指定 XSD,则针对 DTD)验证 XML 消息,然后将其发送至代理。如果找不到指定的模式或无法验证消息,则不会发送消息,而是将抛出异常。

可以在创建或更新目的地时分别使用 imqcmd create dstimqcmd update dst 命令设置 XML 验证属性。XML 验证属性应该在目的地处于非活动状态时进行设置:即,目的地没有使用方和生成方并且目的地中没有消息时。


注 –

如果在运行时无法访问 XSD,则可能需要在目的地处于活动状态时修改 XMLSchemaURIList


如果在目的地处于活动状态时(例如,生成方已连接到目的地时)设置了任何 XML 验证属性,则在生成方重新连接到代理后,更改才会生效。同样,如果由于变更应用程序要求而更改了 XSD,则必须将基于更改的 XSD 生成 XML 消息的所有客户端应用程序重新连接到代理。

如果将 reloadXMLSchemaOnFailure 属性设置为 true 并且 XML 验证失败,Message Queue 客户端运行时环境将尝试重新装入 XSD,然后再次验证消息。如果无法使用重新装入的 XSD 进行验证,客户端运行时环境将抛出异常。

C-API 的分布式事务支持

根据 X/Open 分布式事务模型,分布式事务支持依赖于分布式事务管理器,后者跟踪并管理一个或多个资源管理器所执行的操作。在 Message Queue 4.2 中,Message Queue C-API 现在支持 XA 接口(位于分布式事务管理器和 Message Queue 之间,作为符合 XA 的资源管理器),以使分布式事务处理环境(如 BEA Tuxedo)中运行的 Message Queue C-API 客户端能够参与分布式事务。

这种分布式事务支持包含以下用于实现 XA 接口规范的新 C-API 函数(以及新参数和错误代码):

MQGetXAConnection()
MQCreateXASession()

如果要在分布式事务上下文中使用 C 客户端应用程序,该应用程序必须使用 MQGetXAConnection() 获取连接,并使用 MQCreateXASession() 创建会话以生成和使用消息。任何分布式事务的启动、提交和回滚操作都是通过分布式事务管理器提供的 API 进行管理的。

公共信息

X/Open XA 接口规范需要以下有关符合 XA 的 Message Queue 资源管理器的公共信息:

支持以下名称/值对:

表 1–6 Message Queue 资源管理器名称/值对

名称 

值 

描述 

默认值 

address 

host:port

代理的端口映射器服务的主机:端口。 

localhost:7676

username 

字符串 

用于连接到代理的用户名 

guest

password 

字符串 

用户名的密码 

guest

conntype 

TCP 或 SSL 

连接代理的协议类型 

TCP

trustedhost 

true/false 

代理主机是否可信(仅适用于 conntype=SSL) 

true

certdbpath 

字符串 

包含 NSS 证书和密钥数据库文件的目录的完整路径 

未设置 

clientid 

字符串 

仅对 JMS 持久订阅是必需的 

未设置 

reconnects 

整数 

重新连接到代理的尝试次数(0 表示不重新连接) 

0

编程示例

要编写使用分布式事务的应用程序,请创建一个在事务管理器环境中运行的服务器端服务,以及调用事务管理器 API 的客户端代码。Message Queue 4.2 提供了一些基于 Tuxedo 事务管理器的编程示例。这些示例位于每个平台 ./C/tuxedo 目录下的样例程序目录中。

此目录包含一个 README 文件,它说明了如何设置 Tuxedo 以使用 Message Queue 资源管理器,以及如何在 Tuxedo 环境中生成以下样例程序:

样例程序 

描述 

jmsserver.c

实现 Tuxedo 服务以通过 Message Queue 发送和接收消息。 

jmsclient_sender.c

使用 jmsserver.c 程序中的消息生成服务的 Tuxedo 客户端。

jmsclient_receiver.c

使用 jmsserver.c 程序中的消息接收服务的 Tuxedo 客户端。

async_jmsserver.c

实现 Tuxedo 服务以通过 Message Queue 异步使用消息。 

jmsclient_async_receiver.c

使用 async_jmsserver.c 程序中的异步消息使用服务的 Tuxedo 客户端。

安装程序的 Sun Connection 注册支持

Message Queue 安装程序已进行了改进,允许在 Sun Connection 中注册 Message Queue,这是 Sun 托管的一项服务,可帮助跟踪、管理和维护 Sun 硬件和软件。

在 Message Queue 安装过程中,您可以选择在 Sun Connection 中注册 Message Queue。安装的 Message Queue 的相关信息(如发行版本、主机名、操作系统、安装日期以及其他此类基本信息)将安全地传送到 Sun Connection 数据库。Sun Connection 清单服务可帮助您管理 Sun 硬件和软件;更新服务可通知您最新的可用安全修复程序、建议的更新以及增强功能。

在 Message Queue 4.2 中,为 Sun Connection 注册添加了以下安装程序屏幕:

Sun Connection 注册屏幕。

此注册要求您具有一个 Sun 联机帐户,或者您也可以创建一个帐户。如果您还没有帐户,安装程序将提供以下屏幕以创建 Sun 联机帐户:

用于创建 Sun 联机帐户的屏幕。

您可以在安装过程中使用上述屏幕注册 Message Queue,也可以等到安装完成后使用以下命令在仅限注册模式下运行安装程序:

# installer -r

仅限注册模式要求已安装了 Message Queue 4.2,并且它仅显示与注册相关的安装程序屏幕。

MySQL 数据库支持

Message Queue 4.2 支持将 MySQL 数据库作为基于 JDBC 的数据存储库。可以将 MySQL Cluster Edition 用作独立代理的 JDBC 数据库,以及高可用性代理群集所需的高可用性共享数据存储库。有关将 Message Queue 配置为使用 MySQL 的信息,请参见《Sun Java System Message Queue 4.2 Administration Guide》中的“Configuring a JDBC-Based Data Store”以及《Sun Java System Message Queue 4.2 Administration Guide》中的“High-Availability Cluster Properties”

Message Queue 4.1 的新增功能

Message Queue 4.1 是一个次要发行版,其中包含很多新增功能、一些增强功能以及错误修复程序。本部分介绍了 4.1 发行版中的新增功能,并提供了详细的使用参考:

有关 Message Queue 4.0 中引入的功能的信息,请参见Message Queue 4.0 的新增功能

高可用性代理群集

Message Queue 4.1 引入了高可用性代理群集。与仅提供消息传送服务可用性(如果代理出现故障,可使用另一个代理提供消息传送服务)的传统代理群集相比,高可用性代理群集还提供了数据可用性(如果代理出现故障,另一个代理可使用其持久性消息和状态数据接管消息传送)。

Message Queue 4.1 中引入的高可用性实现使用基于 JDBC 的共享数据存储库:群集中的所有代理共享同一个符合 JDBC 的数据库,而不是代理群集中的每个代理都具有其自己的持久性数据存储库。如果特定代理出现故障,群集中的另一个代理将接管故障代理的消息路由选择和传送。在执行此操作时,故障转移代理将使用共享数据存储库中的数据和状态信息。故障代理的消息传送客户端将重新连接到故障转移代理,它可提供不间断的消息传送服务。

Message Queue 4.1 高可用性实现中使用的基于 JDBC 的共享数据存储库本身必须具有高可用性。如果没有高可用性数据库,或者不间断的消息传送对您并不重要,则可以继续使用传统群集,这些群集提供了服务可用性,但不提供数据可用性。

要配置 Message Queue 4.1 高可用性代理群集,请为群集中的每个代理指定以下代理属性:

要使用高可用性代理群集实现,您必须执行以下操作:

  1. 安装高可用数据库。

  2. 安装 JDBC 驱动程序 .jar 文件。

  3. 为高可用性持久性数据存储库创建数据库模式。

  4. 为群集中的每个代理设置高可用性属性。

  5. 启动群集中的每个代理。

有关高可用性代理群集的概念性讨论及其与传统群集之间的差异,请参见《Sun Java System Message Queue 4.2 Technical Overview》中的第 4  章 “Broker Clusters”。有关高可用性代理群集的过程和参考信息,请参见《Sun Java System Message Queue 4.2 Administration Guide》中的第 8  章 “Managing Broker Clusters”以及《Sun Java System Message Queue 4.2 Administration Guide》中的“Cluster Configuration Properties”

如果已在 Message Queue 4.0 中使用高可用性数据库,并且要切换到高可用性代理群集,则可以使用数据库管理器实用程序 (imqdbmgr) 转换为共享持久性数据存储库。另请参见代理群集以了解更多的已知问题和限制。

JAAS 支持

除了基于文件的内置验证机制以及基于 LDAP 的内置验证机制外,Message Queue 4.1 还引入了 Java 验证和授权服务 (Java Authentication and Authorization Service, JAAS) 支持,它允许将外部验证机制插入到代理中以验证 Message Queue 客户端。

有关代理为符合 JAAS 的验证服务提供的信息的说明以及如何将代理配置为使用此类服务的描述,请参见《Sun Java System Message Queue 4.2 Administration Guide》中的“Using JAAS-Based Authentication”

持久性数据存储库格式更改

Message Queue 4.1 更改了基于 JDBC 的数据存储库以支持高可用性代理群集。为此,将基于 JDBC 的数据存储库格式提高到了版本 410。格式版本 350、370 和 400 将自动迁移到版本 410。

请注意,基于文件的持久性数据存储库的格式将保持为版本 370,因为没有对其进行任何更改。

代理环境配置

Message Queue 4.1 环境配置文件 imqenv.conf 中添加了 IMQ_DEFAULT_EXT_JARS 属性。可以设置此属性,以指定在代理启动时包含在 CLASSPATH 中的外部 .jar 文件的路径名。如果使用此属性指定外部 .jar 文件的位置,则不再需要将这些文件复制到 lib/ext 目录中。外部 .jar 文件可以指 JDBC 驱动程序,也可以指 JAAS 登录模块。下面的样例属性指定了 JDBC 驱动程序的位置。

IMQ_DEFAULT_EXT_JARS=/opt/SUNWhadb4/lib/hadbjdbc4.jar:/opt/SUNWjavadb/derby.jar

Java ES 监视框架支持

Message Queue 4.1 引入了 Sun Java Enterprise System (Java ES) 监视框架支持,它允许使用常见图形界面监视 Java ES 组件。此界面是由一个基于 Web 的控制台(名为 Sun Java System Monitoring Console)实现的。管理员可以使用控制台来查看性能统计信息、创建规则以进行自动监视以及确认警报。如果将 Message Queue 与其他 Java ES 组件一起运行,您可能会发现使用单个界面来管理所有这些组件要更方便一些。

有关使用 Java ES 监视框架监视 Message Queue 的信息,请参见 XREF。

增强的事务管理

以前,仅允许通过管理方式回滚处于 PREPARED 状态的事务。也就是说,如果作为分布式事务一部分的会话没有正常终止,管理员将无法清除处于某种状态的事务。在 Message Queue 4.1 中,您现在可以使用命令实用程序 (imqcmd) 清除(回滚)处于以下状态的事务:STARTEDFAILEDINCOMPLETECOMPLETEPREPARED

为帮助您确定能否回滚特定事务(特别是未处于 PREPARED 状态时),该命令实用程序提供了额外的数据作为 imqcmd query txn 输出的一部分:它为启动事务的连接提供连接 ID,并指定事务的创建时间。通过使用此信息,管理员可以确定是否需要回滚事务。通常,管理员应避免提前回滚事务。

用于 C 客户端连接的固定端口

在 Message Queue 4.1 中,C 客户端(如 Java 客户端)现在可以连接到固定的代理端口,而不是连接到代理的端口映射器服务动态分配的端口。如果要尝试穿过防火墙,或者由于某种其他原因而需要绕过端口映射器服务,固定端口连接是非常有用的。

要配置固定端口连接,您需要配置代理和 C 客户端运行时环境(连接的两端)。例如,如果要通过 ssljms 将客户端连接到端口 1756,您应该执行以下操作:


注 –

MQ_SERVICE_PORT_PROPERTY 连接属性已反向移植到 Message Queue 3.7 Update 2 中。


Message Queue 4.0 的新增功能

Message Queue 4.0 是一个次要发行版,仅限于支持 Application Server 9 PE。它包含几个新增功能、一些增强功能以及错误修复程序。本部分包含此发行版中的新增功能的说明:


注意 – 注意 –

在版本 4.0 中进行了一些细微但可能会引起问题的更改,其中之一就是不再使用命令行选项来指定密码。因此,您必须按过时的密码选项中的所述将所有密码存储在一个文件中,或者在出现提示时输入密码。


JMX 管理 API 支持

Message Queue 4.0 中添加了一个符合 Java Management Extensions (JMX) 规范的新 API,用于配置和监视 Message Queue 代理。使用此 API,可以在 Java 应用程序中以编程方式来配置和监视代理函数。在 Message Queue 的早期版本中,只能从命令行管理实用程序或管理控制台访问这些函数。

有关详细信息,请参见《Sun Java System Message Queue 4.2 Developer’s Guide for JMX Clients》

客户端运行时环境日志记录

Message Queue 4.0 引入了对客户端在运行时记录连接以及会话相关事件的支持。

有关客户端运行时日志记录以及如何对其进行配置的信息,请参见 Java Dev Guide 的第 137 页。

连接事件通知 API

Message Queue 4.0 引入了一个事件通知 API,它允许客户端运行时环境通知应用程序连接状态更改。连接事件通知允许 Message Queue 客户端侦听关闭和重新连接事件,并根据通知类型和连接状态采取适当的操作。例如,如果发生故障转移,并且客户端重新连接到了其他代理,则应用程序可能希望清除事务状态,并继续执行新事务。

有关连接事件以及如何创建事件侦听器的信息,请参见 Java Dev Guide 的第 96 页。

代理管理增强功能

在 Message Queue 4.0 的命令实用程序 (imqcmd) 中添加了一个新的子命令和几个命令选项,以允许管理员停止代理、在指定时间间隔后关闭代理、销毁连接或设置 Java 系统属性(例如,与连接相关的属性)。

有关 imqcmd 命令语法的完整信息,请参见《Sun Java System Message Queue 4.2 Administration Guide》中的第 13  章 “Command Line Reference”

显示有关基于 JDBC 的数据存储库的信息

Message Queue 4.0 的数据库管理器实用程序 imqdbmgr 中添加了一个新的 query 子命令。使用此子命令可显示有关基于 JDBC 的数据存储库的信息,其中包括数据库版本、数据库用户以及是否已创建数据库表。

以下是此命令所显示的信息的示例。


imqdbmgr query

[04/Oct/2005:15:30:20 PDT] Using plugged-in persistent store:
        version=400
        brokerid=Mozart1756
        database connection url=jdbc:oracle:thin:@Xhome:1521:mqdb
        database user=scott
Running in standalone mode.
Database tables have already been created.

JDBC 提供者支持

Message Queue 4.0 现在支持将 Apache Derby 版本 10.1.1 作为基于 JDBC 的数据存储库提供者。

持久性数据存储库格式更改

Message Queue 4.0 引入了对基于 JDBC 的数据存储库的更改,以便进行优化并支持以后的增强功能。为此,将基于 JDBC 的数据存储库格式提高到了版本 400。请注意,在 Message Queue 4.0 中,基于文件的数据存储库版本将保持为 370,因为没有对其进行任何更改。

其他消息属性

Message Queue 4.0 添加了两个新属性,它们是在位于停用消息队列中的所有消息上设置的。

SSL 支持

从 Message Queue 4.0 开始,客户端连接工厂属性 imqSSLIsHostTrusted 的默认值为 false。如果应用程序依赖于以前的默认值 true,则需要对此属性进行重新配置,以将其明确设置为 true

将代理配置为使用自签名证书时,您可以选择信任主机。在这种情况下,除了指定连接应使用基于 SSL 的连接服务(通过 imqConnectionType 属性)外,还应该将 imqSSLIsHostTrusted 属性设置为 true。

例如,要在代理使用自签名证书时安全地运行客户端应用程序,请使用如下命令。

java -DimqConnectionType=TLS 
      -DimqSSLIsHostTrusted=true ClientAppName

要在代理使用自签名证书时安全地使用命令实用程序 (imqcmd) ,请使用如下命令(用于列出连接器服务)。

imqcmd list svc -secure -DimqSSLIsHostTrusted=true

以后发行版中不再使用的功能

在以后的发行版中不再使用基于消息的监视,此功能通过使用写入到度量主题目的地中的度量信息来监视代理及其目的地。

基于消息的监视使用代理的可配置度量消息生成方将度量数据写入到 JMS 消息中,然后这些消息将发送到度量主题目的地,具体取决于消息中包含的度量信息类型。之后,可通过编写客户端应用程序来访问度量信息,该应用程序将订阅相应的度量主题目的地、使用其消息并根据需要处理数据。

基于消息的监视功能已被 MQ 4.0 中实现的 JMX 管理 API(请参见JMX 管理 API 支持)所取代。JMX API 更全面(它包含的度量数据比写入到主题目的地中的数据多)且基于 JMX 行业标准。

由于 Message Queue 支持 JMX API,因此没有必要再使用基于消息的监视。Message Queue 文档中将保留与基于消息的监视相关的信息,直至正式弃用该功能。

Message Queue 4.2 和较新发行版中修复的错误

Message Queue 4.2 包含新的错误修复程序,并且还包含在 Message Queue 4.1 和 Message Queue 4.0 发行版中修复的错误。

以下各部分列出了在相应发行版中修复的错误:

Message Queue 4.2 中修复的错误

下表介绍了 Message Queue 4.2 中修复的错误。

表 1–7 Message Queue 4.2 中修复的错误

错误 

描述 

6581592 

在文本模式下运行安装程序 (installer –t) 或卸载程序时,“摘要”屏幕将显示包含日志/摘要文件的目录,但不会列出这些文件的名称。

6585911 

安装程序的“JDK 选择”屏幕未正确包含与安装程序捆绑在一起并用于运行安装程序的 JRE。 

6587112 

在多字节语言环境中,安装程序“摘要”屏幕显示乱码。 

6587127 

在通过引用应答文件以运行安装程序 (installer -a filename -s) 时,如果该应答文件不存在,则错误消息不一致且含混不清。

6590969 

在客户端连接验证中允许使用 DN 用户名格式。 

6594381 

如果系统上存在 Message Queue 本地化 RPM 的旧版本,Message Queue 4.1 本地化 RPM 安装(通过在“多语言软件包”屏幕上选中“安装 Message Queue 多语言软件包”复选框来执行此操作)将会失败。 

6599144 

在 Java SE 6 上卸载 Message Queue 4.2 时,闪屏和卸载程序将挂起,并且显示灰色空白屏幕,但在 Java SE 5 上,则可以正常工作。 

6615741 

如果回滚在使用方事务会话中传送的消息,并且在回滚之前关闭了原始使用方,则不会重新传送这些消息。 

6629922 

分布式事务处理程序未按正确的顺序将消息重新传送到非活动使用方。 

6635130 

代理在由于目的地已达到内存限制或消息限制而暂停后,不能通知非持久性消息的生成方恢复生成操作。 

6641117 

如果回滚在使用方事务会话中传送的消息,并且在回滚之后关闭了原始使用方,则不会重新传送这些消息。 

6683897 

Message Queue 安装程序的“摘要”屏幕报告以下配置错误,即使显示成功完成配置:在某些计算机上,安装程序无法写入到 /dev/sterr 中。

6684069 

对于在使用方事务中将大量消息传送到远程客户端的代理群集,无法提交事务。 

6688935 

端口映射器读取超时的默认值太小。 

6695238 

如果代理的安装路径中包含空格,C 客户端应用程序将无法连接到该代理。 

6710168 

如果目的地暂停两次并且在两次暂停之间未进行恢复,使用方将不再使用消息。 

6710169 

JMX 操作 ConsumerManagerMonitor.getConsumerInfo 始终为确认模式返回 SESSION_TRANSACTED

Message Queue 4.1 中修复的错误

下表介绍了 Message Queue 4.1 中修复的错误。

表 1–8 Message Queue 4.1 中修复的错误

错误 

描述 

6381703 

如果传送消息的代理重新启动,则可能会两次提交处理的远程消息。 

6388049 

无法清除未完成的分布式事务。 

6401169 

imqcmd 的提交和回滚选项不提示进行确认。 

6473052 

自动创建的队列的默认设置应该为循环传送。(MaxNumberConsumers = -1)。

6474990 

代理日志显示 imqcmd list dst 命令发生了 ConcurrentModificationException

6487413 

限制行为是 REMOVE_OLDESTREMOVE_LOWER_PRIORITY 时发生内存泄漏。

6488340 

代理自旋,并且客户端等待确认回复。 

6502744 

代理不遵循停用消息队列具有 1000 个消息的默认限制。 

6517341 

当客户端连接到高可用性代理群集时,客户端运行时环境需要改进重新连接逻辑,以便允许客户端重新连接,而无论 imqReconnectEnabled 属性值是什么。

6528736 

Windows 自动启动服务 (imqbrokersvc) 在启动过程中崩溃。

6561494 

当两个使用方共享一个会话时,消息将传送到错误的使用方。 

6567439 

如果在代理重新启动后提交 PREPARED 事务中生成的消息,这些消息的传送顺序就会不正确。

Message Queue 4.0 中修复的错误

下表介绍了 Message Queue 4.0 中修复的错误。

表 1–9 Message Queue 4.0 中修复的错误

错误号 

描述 

4986481 

在 Message Queue 3.5 中调用 Session.recover 时,可能会在自动重新连接模式下挂起。

4987325 

在调用 Session.recover 后,将重新传送的消息的 Redelivered 标志设置为 false

6157073 

将新连接消息更改为既包含总连接数,也包含服务上的连接数。 

6193884 

在使用非 ASCII 字符显示消息的语言环境中,Message Queue 向系统日志输出垃圾消息。 

6196233 

无法使用 JMSMessageID 选择消息。

6251450 

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

6252763 

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

6260076 

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

6260814 

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

6264003 

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

6271876 

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

6279833 

Message Queue 不允许两个代理使用相同的 JDBC 表。 

6293053 

除非清除存储库中的内容(使用 —reset store),否则当系统的 IP 地址更改时,主代理将无法正确启动)

6294767 

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

6304949 

无法设置 TopicConnectionFactoryClientID 属性。

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 

添加对 Apache Derby 数据库的支持。 

Message Queue 4.2 中的文档更新

本部分包含有关 Message Queue 4.2 文档更新的信息:

兼容性问题

本部分包含有关 Message Queue 4.2 的兼容性问题。

接口稳定性

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

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

Message Queue 的下一个主要发行版可能引入一些更改,这些更改会使当前的 Message Queue 客户端应用程序与该发行版不兼容。提前提供此信息是为了使用户早做准备。

Message Queue 4.2 文档集中的更改

Message Queue 4.2 文档集包含对 Message Queue 4.1 文档集所做的更新,如下所述:

技术概述

更新了《Sun Java System Message Queue 4.2 Installation Guide》以反映 Message Queue 4.2 中的新增功能以及更新的高可用性代理群集框架。

管理指南

更新了管理指南以反映 Message Queue 4.2 中的新增功能。

安装和升级信息

尚未对《Sun Java System Message Queue 4.2 Installation Guide》进行更新以反映 Message Queue 4.2 中的新增功能,具体是指安装程序中新增的 Sun Connection 注册功能。此信息是在 Message Queue 发行说明中提供的。

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

尚未对适用于 Java 客户端的开发者指南进行更新以反映 Message Queue 4.2 中的新增功能。此信息是在 Message Queue 发行说明中提供的。

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

尚未对适用于 C 客户端的开发者指南进行更新以反映 Message Queue 4.2 中的新增功能。此信息是在 Message Queue 发行说明中提供的。

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

尚未对适用于 JMX 客户端的开发者指南进行更新以反映 Message Queue 4.2 中的新增功能。此信息是在 Message Queue 发行说明中提供的。

新的目的地度量

Message Queue 4.2 包含新的目的地度量,可用于监视代理群集中的目的地。在代理群集中,目的地将传播到群集中的所有代理。不过,只有在消息生成方主代理的目标目的地具有活动使用方时,才会将生成的消息存储在该目的地中,然后将消息发送到群集中的另一个代理上的相应目的地。因此,存储在指定目的地中的消息取决于目的地所在的群集代理。

换句话说,在代理群集中,在给定群集代理上的给定目的地中存储的消息包括在该目的地中直接生成的消息以及从群集的远程代理发送到该目的地的消息。在分析代理群集中的消息路由选择和传送时,了解目的地中有多少消息是本地消息(在本地生成)以及多少消息是远程消息(在远程生成)有时是非常有用的。

下表显示了 Message Queue 4.2 中包含的两个新物理目的地度量数量。这两个新度量数量是通过 imqcmd list dstimqcmd query dst 命令以及新的 JMX 属性(请参见目的地监视 MBean)获得的。

表 1–10 物理目的地度量

度量数量 

描述 

是否有日志文件? 

metrics dst 度量类型

度量主题 

Num messages remote 

当前存储在内存和持久性存储库中的消息数,这些消息是在群集的远程代理中生成的。此数值不包括事务中包含的消息。 

否 

不可用 [可通过 imqcmd query dst 命令获得]

不可用 

Total message bytes remote 

当前存储在内存和持久性存储库中的消息的总大小(以字节为单位),这些消息是在群集的远程代理中生成的。此数值不包括事务中包含的消息。 

否 

不可用

不可用 

Solaris 10 OS 上的自动代理启动

本部分介绍了如何在 Solaris 10 操作系统上配置自动代理启动。以下过程使用 Solaris 10 服务管理工具 (Service Management Facility, SMF),而不是使用 rc 文件实现在计算机重新引导时自动启动代理。

有关使用服务管理工具的详细信息,请参阅 Solaris 10 文档。

Procedure在 Solaris 10 OS 上实现自动代理启动

  1. 将 mqbroker 服务导入到 SMF 系统信息库中。

    # svccfg import /var/svc/manifest/application/sun/mq/mqbroker.xml

  2. 检查 mqbroker 服务状态以验证是否成功导入。

    # svcs mqbroker

    其输出与以下内容类似:


    STATE STIME FMRI
    disabled 16:22:50 svc:/application/sun/mq/mqbroker:default

    该服务最初显示为已禁用。

  3. 启用 mqbroker 服务。

    # svcadm enable svc:/application/sun/mq/mqbroker:default

    启用 mqbroker 服务时,将启动 imqbrokerd 进程。重新引导操作将随后重新启动代理。

  4. 配置 mqbroker 服务,以将任何所需的参数传递给 imqbrokerd 命令。

    options/server_args 属性用于将参数传递给 imqbrokerd。例如,要添加 -loglevel DEBUGHIGH,请执行以下操作:


    # svccfg
    svc:> select svc:/application/sun/mq/mqbroker
    svc:/application/sun/mq/mqbroker> setprop options/server_args=\"-loglevel DEBUGHIGH\"
    svc:/application/sun/mq/mqbroker> exit

JMX API 更改

Message Queue 支持 Java Management Extensions (JMX) API,以便在 Message Queue 客户端应用程序中以编程方式来配置和监视代理函数。Message Queue 4.2 包含 JMX API 扩展以支持此发行版中的新增功能。对于以下 MBean,为其定义了新的 JMX 属性、操作和/或查找关键字:

使用方管理器监视 MBean

以下各表中的属性、操作和查找关键字支持为发布者或订阅者提供多个目的地中所述的功能。

在实用程序类 com.sun.messaging.jms.management.server.ConsumerAttributes 中,将以下属性的名称定义为静态常量。

表 1–11 使用方管理器监视属性

名称 

类型 

是否可设置? 

描述 

NumWildcardConsumers

Integer

否 

与代理关联的通配符消息使用方数 

在实用程序类 com.sun.messaging.jms.management.server.ConsumerOperations 中,将以下操作的名称定义为静态常量。

表 1–12 使用方管理器监视操作

名称 

参数 

结果类型 

描述 

getConsumerWildcards

无 

String[]

与代理关联的当前使用方使用的通配符字符串 

getNumWildcardConsumers

wildcard-String 

Integer

与代理关联且使用指定通配符字符串的当前使用方数 

在实用程序类 com.sun.messaging.jms.management.server.ConsumerInfo 中,将以下查找关键字定义为静态常量。

表 1–13 消息使用方信息的查找关键字

名称 

值类型 

描述 

DestinationNames

String[]

与通配符使用方使用的通配符匹配的目的地名称 

仅适用于主题目的地。 

Wildcard

Boolean

是否为通配符使用方? 

仅适用于主题目的地。 

目的地配置 MBean

下表中的属性支持XML 有效负荷消息的模式验证中所述的功能。

在实用程序类 com.sun.messaging.jms.management.server.DestinationAttributes 中,将以下属性的名称定义为静态常量。

表 1–14 目的地配置属性

名称 

类型 

是否可设置? 

描述 

ValidateXMLSchemaEnabled

Boolean

是 

是否启用 XML 模式验证? 

如果设置为 false 或未进行设置,则不会为目的地启用 XML 模式验证。

XMLSchemaURIList

String

是 

以空格分隔的 XML 模式文档 (XSD) URI 字符串列表 

这些 URI 指向用于 XML 模式验证(如果启用)的一个或多个 XSD 的位置。 

如果指定多个 URI,应使用双引号将该值引起来。 

示例: 

"http://foo/flap.xsd http://test.com/test.xsd"

如果未设置此属性或将其设置为 null,并且启用了 XML 验证,则使用在 XML 文档中指定的 DTD 来执行 XML 验证。 

ReloadXMLSchemaOnFailure

Boolean

是 

是否在失败时重新装入 XML 模式? 

如果设置为 false 或未进行设置,则不会在验证失败时重新装入该模式。 

目的地管理器配置 MBean

可以使用以上介绍的新目的地配置 MBean 属性(支持XML 有效负荷消息的模式验证中所述的新功能),通过目的地管理器配置 MBean 的 create 操作来创建目的地。

目的地监视 MBean

下表中的第一组属性支持为发布者或订阅者提供多个目的地中所述的功能;第二组属性支持新的目的地度量中所述的增强功能。

在实用程序类 com.sun.messaging.jms.management.server.DestinationAttributes 中,将以下属性的名称定义为静态常量。

表 1–15 目的地监视属性

名称 

类型 

是否可设置? 

描述 

NumWildcards

Integer

否 

当前与目的地关联的通配符消息生成方和通配符消息使用方数 

仅适用于主题目的地。 

NumWildcardProducers

Integer

否 

当前与目的地关联的通配符消息生成方数 

仅适用于主题目的地。 

NumWildcardConsumers

Integer

否 

当前与目的地关联的通配符消息使用方数 

仅适用于主题目的地。 

NumMsgsRemote

Long

否 

当前存储在内存和持久性存储库中的消息数,这些消息是在群集的远程代理中生成的。此数值不包括事务中包含的消息。 

TotalMsgBytesRemote

Long

否 

当前存储在内存和持久性存储库中的消息的总大小(以字节为单位),这些消息是在群集的远程代理中生成的。此数值不包括事务中包含的消息。 

下表中的操作支持为发布者或订阅者提供多个目的地中所述的功能。

在实用程序类 com.sun.messaging.jms.management.server.DestinationOperations 中,将以下操作的名称定义为静态常量。

表 1–16 目的地监视操作

名称 

参数 

结果类型 

描述 

getWildcards

无 

String[]

与目的地关联的当前使用方和生成方使用的通配符字符串 

仅适用于主题目的地。 

getConsumerWildcards

无 

String[]

与目的地关联的当前使用方使用的通配符字符串 

仅适用于主题目的地。 

getProducerWildcards

无 

String[]

与目的地关联的当前生成方使用的通配符字符串 

仅适用于主题目的地。 

getNumWildcardConsumers

wildcard-String 

Integer

与目的地关联且使用指定通配符字符串的当前使用方数 

仅适用于主题目的地。 

getNumWildcardProducers

wildcard-String 

Integer

与目的地关联且使用指定通配符字符串的当前生成方数 

仅适用于主题目的地。 

生成方管理器监视 MBean

以下各表中的属性、操作和查找关键字支持为发布者或订阅者提供多个目的地中所述的功能。

在实用程序类 com.sun.messaging.jms.management.server.ProducerAttributes 中,将以下属性的名称定义为静态常量。

表 1–17 生成方管理器监视属性

名称 

类型 

是否可设置? 

描述 

NumWildcardProducers

Integer

否 

与代理关联的通配符消息生成方数 

在实用程序类 com.sun.messaging.jms.management.server.ProducerOperations 中,将以下操作的名称定义为静态常量。

表 1–18 生成方管理器监视操作

名称 

参数 

结果类型 

描述 

getProducerWildcards

无 

String[]

与代理关联的当前生成方使用的通配符字符串 

getNumWildcardProducers

wildcard-String 

Integer

与代理关联且使用指定通配符字符串的当前生成方数 

在实用程序类 com.sun.messaging.jms.management.server.ProducerInfo 中,将以下查找关键字定义为静态常量。

表 1–19 消息生成方信息的查找关键字

名称 

值类型 

描述 

DestinationNames

String[]

与通配符生成方使用的通配符匹配的目的地名称 

仅适用于主题目的地。 

Wildcard

Boolean

是否为通配符生成方? 

仅适用于主题目的地。 

支持在客户端验证中使用 DN 用户名格式

Message Queue 4.2 支持在针对 LDAP 用户系统信息库的客户端连接验证中使用 DN 用户名格式。该支持涉及以下新代理属性(和值):

imq.user_repository.ldap.usrformat=dn

借助于此属性,代理可通过从 DN 用户名格式中提取以下属性所指定的属性值,针对 LDAP 用户系统信息库中的条目验证客户端用户:

imq.user_repository.ldap.uidattr

在执行访问控制操作时,代理将上述属性的值用作用户名。

例如,如果 imq.user_repository.ldap.uidattr=udi,并且客户端验证用户名格式为 udi=mquser,ou=People,dc=red,dc=sun,dc=com ,则将提取 "mquser" 以执行访问控制。

JAAS 验证增强功能

Message Queue 4.2 JAAS 验证支持通过 IP 地址以及用户名进行验证。

已知问题和限制

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

有关当前错误、错误的状态和解决方法的列表,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 发送电子邮件。

安装问题

本部分介绍了与安装 Message Queue 版本 4.2 相关的问题。

产品注册表和 Java ES

与 Message Queue 4.1 类似,Message Queue 4.2 是由相对较新的安装程序安装的,该安装程序还可安装并升级 Message Queue 所需的 Java Enterprise System (Java ES) 共享组件,例如,JDK、NSS 和 JavaHelp 等。

新 Message Queue 安装程序和旧 Java ES 安装程序(用于安装以前的 Message Queue 版本)不能共享同一个产品注册表。如果 Message Queue 安装程序删除随 Java ES 安装程序安装的 Message Queue 版本并升级到 Message Queue 4.2,Java ES 产品注册表可能会处于不一致的状态。因此,如果运行 Java ES 卸载程序,它可能会误删 Message Queue 4.2 及其依赖的共享组件,即使这些内容并不是它安装的。

升级 Java ES 安装程序所安装的 Message Queue 软件的最佳方法如下所示。

  1. 使用 Java ES 卸载程序删除 Message Queue 及其共享组件。

  2. 使用 Message Queue 安装程序安装 Message Queue 4.2。

在 Windows 上进行安装

在 Windows 上安装 Message Queue 时,请注意以下限制。

在 Solaris 上进行安装

在 Linux 上进行安装

以下问题会影响 Linux 平台上的安装

在所有平台上进行安装

这些问题会影响所有平台上的安装。

安装程序中的版本异常

安装程序未明确显示 Message Queue 版本信息。(错误 6586507)

在 Solaris 平台上,请参阅下表以确定安装程序所显示的 Message Queue 版本。

表 1–20 版本字符串转换

Solaris OS 上的安装程序显示的版本 

对应的 Message Queue 发行版 

4.2.0.0 

4.2 

4.1.0.2 

4.1 Patch 2 

4.1.0.1 

4.1 Patch 1 

4.1.0.0 

4.1 

3.7.2.1 

3.7 UR2 Patch 1 

3.7.0.2 

3.7 UR2 

3.7.0.1 

3.7 UR1 

3.6.0.0 

3.6 

3.6.0.4 

3.6 SP4 

3.6.0.3 

3.6 SP3 

3.6.0.2 

3.6 SP2 

3.6.0.1 

3.6 SP1 


注 –

对于 3.6 SP4 修补程序发行版(如 3.6 SP4 Patch 1),安装程序显示的发行版字符串保持不变。您需要运行 imqbrokerd -version 命令以确定确切的版本。


在 Linux 平台上,安装程序显示的版本号采用以下格式。

majorReleaseNumber.minorReleaseNumber-someNumber

例如,3.7–22。它仅告诉我们这是 3.7 发行版之一,但没有指出具体的版本。要确定安装的 Message Queue 版本,请运行以下命令:

imqbrokerd -version

本地化问题

以下问题与本地化问题有关。

过时的密码选项

在以前版本的 Message Queue 中,可以对以下命令使用 —p—password 选项以交互方式来指定密码:imqcmdimqbrokerdimdbmgr。从 4.0 版开始,将不再使用这些选项。

您可以创建一个密码文件以指定相关密码并使用 -passfile 命令选项引用该密码文件,或者在出现命令提示时直接输入密码。

密码文件可以包含以下列出的一个或多个密码。

在以下示例中,在密码文件中将 JDBC 数据库的密码设置为 abracadabra

imq.persist.jdbc.mysql.password=abracadabra

可通过以下某种方法使用密码文件。

管理/配置问题

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

代理问题

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

代理群集

以下问题影响代理群集。

JMX 问题

在 Windows 平台上,事务管理器监视 MBean 的 getTransactionInfo 方法将返回具有错误事务创建时间的事务信息。(错误 6393359

解决方法:改用事务管理器监视 MBean 的 getTransactionInfoByID 方法。

SOAP 支持

您需要注意与 SOAP 支持有关的两个问题

可再分发的文件

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

fscontext.jar

jms.jar

imq.jar

libmqcrt.so (HPUX)

imqjmx.jar

libmqcrt.so (UNIX)

imqxm.jar

mqcrt1.dll (Windows)

jaas.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 4.2 发行说明》,文件号码为 820-5643。

提出意见时您还需要在表格中输入文档的英文文件号码和标题。本文档的英文文件号码是 820-3701,文档标题为《Sun Java System Message Queue 4.2 Release Notes》。

其他 Sun 资源

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