版本 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 概不负责,也不承担任何责任。
日期 |
更改描述 |
---|---|
2006 年 8 月 |
本文档的最初发行版。 |
2007 年 2 月 |
本文档的最终发行版。 |
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 包括以下新功能:
这些功能将在以下各部分中进行描述。
为了简化产品交付过程,我们将 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 下载中心、介质提供 |
无更改。 |
新函数:MQGetDestinationName()
MQGetDestinationName (const MQDestinationHandle destinationHandle, MQString * destinationName); |
使用此函数可以获取目的地的名称。返回的 destinationName 是一个副本,调用方通过调用 MQFreeString() 函数来负责释放该副本。
参数
要获取其名称的目的地的句柄。
名称的输出参数。
使用回复模式时,此函数会非常有用。可以使用 MQGetMessageReplyTo 函数获取要将消息发送到的目的地的句柄。然后可以使用 MQGetDestinationName 获取该目的地的名称。获取目的地名称之后,可以根据此名称处理消息。
新枚举值:MQ_MESSAGE
新的 MQMessageType MQ_MESSAGE 允许 C 客户端与其他 Message Queue 客户端(C 和 Java)交换 Message 类型的 JMS 消息:
typedef enum _MQMessageType {MQ_TEXT_MESSAGE = 0, MQ_BYTES_MESSAGE = 1, MQ_MESSAGE = 3, MQ_UNSUPPORTED_MESSAGE = 2} MQMessageType; |
MQ_MESSAGE 类型用于标识具有标题和属性但没有消息主体的消息。使用 MQCreateMessage() 函数可创建此类型的消息。
新连接属性 MQ_UPDATE_RELEASE_PROPERTY,用于指定已安装的 Message Queue 的更新发行版本。使用 MQGetMetaData() 函数可获取版本信息。
为了提高性能,已对 Message Queue 的持久性存储库格式进行了两处更改。一处是对文件存储库的更改,另一处是对 JDBC 存储库的更改。
文件存储库中的事务信息
已经对事务状态信息(存储在 Message Queue 的基于文件的持久性存储库中)的格式进行了更改,以减少磁盘 I/O 和提高 JMS 事务性能。
Oracle JDBC 存储库
在 Message Queue 的以前版本中,适用于 Oracle 的存储库结构使用 LONG RAW 数据类型来存储消息数据。在 Oracle 8 中,Oracle 引入了 BLOB 数据类型,而不再使用 LONG RAW 类型。Message Queue 3.7 UR1 已转为使用 BLOB 数据类型,以提高性能和提供更多支持。
由于这些更改会影响存储库兼容性,因此存储库版本已由 350 更改为 370。Message Queue 3.7 UR1 支持将持久性存储库从旧的 200 和 350 版本自动转换为 370 版本(同时适用于 JDBC 存储库和基于文件的存储库)。imqbrokerd 首次启动时,如果实用程序检测到早期版本的存储库,则会将存储库迁移到新格式,并留下早期的存储库。
如果需要回滚此升级,可以先卸载 Message Queue 3.7 UR1,然后重新安装以前运行的版本。由于未对存储库的早期副本进行任何更改,因此代理可以运行存储库的早期副本。
Sun Java Enterprise System 安装指南中提供了 Message Queue 的硬件和软件要求。
区域是一种 Solaris Container 技术,该技术可以在计算机上提供独立的环境,并在逻辑上使应用程序之间彼此分隔。区域允许您在 Solaris 操作系统实例中创建虚拟的操作系统环境。在不同区域中运行应用程序时,您可以在相同的计算机上运行同一应用程序的不同实例或不同版本,同时对资源进行集中管理和有效共享。
本部分对区域进行了简要描述,并说明了它们在 Message Queue 3.7 UR1 中的使用情况。
区域环境包括一个全局区域以及一个或多个非全局区域。首次在系统上安装 Solaris 10 时,只有一个全局区域。管理员可以创建其他非全局区域作为全局区域的子区域。每个区域都显示为运行 Solaris 的独立系统。每个区域都有其各自的 IP 地址、系统配置、运行应用程序的实例,以及文件系统上的位置。
全局区域包含可以在非全局区域之间共享的资源,从而可以将某些管理功能集中起来。例如,在全局区域中安装的软件包可用于(传播到)所有现有的非全局区域。这样可以集中执行生命周期管理(如安装、升级和卸载)。同时,非全局区域所提供的分隔功能也带来了更高的安全性,并允许您在相同的计算机上运行同一应用程序的不同配置的实例或不同版本。
非全局区域可以是完全根区域,也可以是稀疏根区域:选择哪种区域作为应用程序的环境取决于如何平衡管理控制和资源优化。
完全根区域包含全局区域上文件系统的读/写副本。在全局区域中安装的软件包(及其注册信息)将被自动复制到完全根区域。这样可以获得最佳的管理控制,但却会消耗资源。
稀疏根区域包含全局区域上部分文件系统的读/写副本;其他文件系统将作为只读文件系统进行挂载。通过只读文件系统以及注册信息的自动同步,稀疏根区域也可以使用全局区域中安装的软件包。稀疏根区域可以优化资源共享,而集中管理功能却会相对变弱。
组成 Java Enterprise System 的组件依赖于某些共享组件;这在使用区域方面造成了一些限制。在区域环境中,共享组件必须遵循以下规则。
区域中的所有共享组件必须为同一 JES 版本。此要求会导致三种结果。
如果要安装共享组件的不同版本,则每个版本都必须驻留在单独的区域中。
在区域中,如果对某个共享组件进行了升级或安装了较新版本,则必须升级所有共享组件。
在全局区域中安装共享组件时,必须根据需要对非全局区域中的共享组件进行升级。
由于稀疏根区域中使用只读文件系统,因此无法在稀疏根区域中安装共享组件。必须在全局区域中安装共享组件。依赖于共享组件的产品组件必须先安装在全局区域中,然后再传播到非全局区域。
由于 Message Queue 是 Java Enterprise System 的组件产品,因此上述要求会影响其安装,进而会限制其区域使用。
Message Queue 产品将被安装到 /usr 目录中,因此必须先在全局区域中进行安装或升级。
在全局区域中安装 Message Queue 时,它将被设置为传播到所有非全局区域。在全局区域中安装 Message Queue 之后,即在所有区域中安装了同一版本的 Message Queue:如果您登录到任意区域并运行命令 pkginfo -l SUNWiqu,您会看到 Message Queue 已被安装,并且与全局区域中安装的版本相同。接下来可以在每个区域中运行独立的 Message Queue 代理实例,因为这些实例进程并不共用 /var 和 /etc 目录中保存的实例和配置数据。(如果其他大多数 Java Enterprise System 组件都安装在全局区域,则不会传播这些组件。)
由于 Message Queue 将被传播到非全局区域,因此全局实例将始终链接到非全局区域中的安装。这样,无论您何时在全局区域中卸载或升级 Message Queue,它都会对非全局区域中运行的实例造成影响。以下示例说明这样做如何导致可能的意外结果。
在全局区域中安装 Message Queue 3.7 UR1。这会导致同时将 Message Queue 3.7 UR1 软件包安装到所有非全局区域中。
在完全根区域中卸载 Message Queue 3.7 UR1。然后在完全根区域中安装 Message Queue 3.6。
现在,不同区域中将运行不同版本的 Message Queue,您可能会发现这种设置非常有用。
在全局区域中卸载 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 的解决方法,以获取其他信息。
在全局区域中安装所需版本的 Message Queue。
这些版本将传播到任何现有的非全局区域中。如果创建了其他的非全局区域,则 Message Queue 也将传播到这些区域中。(您既可以在完全根区域中安装不同实例,也可以在稀疏根区域中安装不同实例,但使用稀疏根区域可以更有效地利用磁盘空间和其他资源)。
如果您希望 Message Queue 传播到任何其他非全局区域中,请立即创建这些区域。
在每个非全局区域中运行 Message Queue 的实例。
从全局区域中卸载 Message Queue。
创建完全根区域,并在创建区域时使用以下指令,将每个区域都配置为不共用 /usr 目录:
remove inherit-pkg-dir dir=/usr
在每个完全根区域中安装不同版本的 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 下一个主要发行版中进行的某些更改可能会导致您的客户端与该发行版不兼容。现在提供此信息是为了让您针对这些更改做好准备。
作为 Sun Java System Message Queue 的一部分进行安装的个别文件的位置可能会发生更改。如果现有的应用程序依赖于某些 Message Queue 文件的当前位置,则这些应用程序可能会中断。
3.5 及更早版本的代理可能无法再在具有较高版本代理的群集中运行。
在以后的版本中,Message Queue 客户端可能无法使用早于 1.3 的 JDK 版本。
以下部分介绍对 Message Queue 文档的更新和更改,而不是较小的更正和增补。
《Sun Java System Message Queue 3.7 UR1 Developer’s Guide for C Clients》已更新,以反映添加了 MQGetDestinationName 函数、MQ_Message 消息类型和 MQ_UPDATE_RELEASE_PROPERTY 连接属性。
《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 发送电子邮件。
使用 SSL 的连接服务当前仅支持自签名服务器证书,即信任主机模式。
使用 HTTP 传输的 JMS 客户端突然终止时(例如,使用 Ctrl-C),代理要花费大约一分钟的时间才能释放客户端连接和所有关联的资源。
如果在这一分钟内客户端的另一个实例启动,并且该实例尝试使用同一个客户端 ID、长期订阅或队列,则可能会收到“客户端 ID 已经在使用”的异常。这实际上不是什么问题,只是上述终止过程的副作用。如果客户端在延迟约一分钟后启动,则应当一切正常。
在 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。
以下各项内容与代理群集的使用相关。
本发行版中只支持完全连接的代理群集。这意味着群集中的每个代理均必须与群集中的其他所有代理直接通信。如果使用 imqbrokerd -cluster 命令行变量连接代理,请务必小心以确保包含了群集中的所有代理。
与作为群集一部分的代理连接的客户端目前不能使用 QueueBrowser 来浏览位于该集群中远程代理上的队列。此客户端只能浏览位于直接连接的代理上的队列的内容。此客户端仍可以向任何队列发送消息,或使用来自集群中任何代理上的任何队列的消息,此限制只影响浏览。
如果代理群集中未使用主代理,则要添加到群集中的代理所存储的持久性信息将不会传播到群集中的其他代理。
群集中某个代理的连接丢失(错误号 6377527)。
产生此错误的一个原因是,丢失连接的代理的地址被解析为回送 IP 地址 (127.0.0.1)。
解决方法 请确保不要将代理地址解析为回送 IP 地址。
在代理群集中,代理会将要传送到尚未启动的远程连接的消息排队(错误号 4951010)。
解决方法 一旦启动远程连接,这些消息将会由使用方接收。如果该使用方的连接关闭,这些消息将重新传送给另一个使用方。
以下是有关管理和配置 Message Queue 的问题。
在 Windows 计算机上,当 CLASSPATH 包含双引号时,imqadmin 和 imqobjmgr 实用程序将抛出错误(错误号 5060769)
解决方法 可以忽略此错误消息;代理只是正确地通知使用方出现的任何错误。此错误不影响系统的可靠性。
如果所提供的值中包含空格,则所有 Solaris 和 Windows 脚本中的 -javahome 选项都不起作用(错误号 4683029)。
Message Queue 命令和实用程序使用 javahome 选项来指定要使用的备用 Java 2 兼容运行时。但是,备用 Java 运行时的路径名不能包含空格。以下是包含空格的路径示例。
Windows:C:/jdk 1.4
Solaris: /work/java 1.4
解决方法 请在不包含空格的位置或路径中安装 Java 运行时。
imqQueueBrowserMaxMessagesPerRetrieve 属性指定客户端运行时环境在浏览队列目的地的内容时一次可以检索到的最大消息数。请注意,客户端应用程序始终可以获取队列上的所有消息。因此,imqQueueBrowserMaxMessagesPerRetrieve 属性会影响如何对排队的消息进行分块,以便传送到客户端运行时环境(消息较少时用较大的块,或消息较多时用较小的块),但不会影响所浏览的全部消息。更改此属性的值可能会对性能产生影响,但不会导致客户端应用程序获取的数据增加或减少(错误号 6387631)。
以下问题将影响 Message Queue 代理。
imqbrokerd —license 命令显示过时或重复的信息。它显示有关试用许可证的信息,即使此类型的许可证不再受到支持(错误号 6489711);还将显示有关 unl 许可证的重复信息(错误号 6441015)。
解决方法 这些是小问题,无需解决方法。
代理不使用停用消息队列的默认限制(1000 条消息);它会一直向停用消息队列中添加消息,直到代理消耗完内存为止。(错误号 6502744)
解决方案 将停用消息队列限制重置为 1001 或除 1000 以外的任何值。
在 Windows 2000 中,HTTPS createQueueConnection 偶尔引发异常(错误号 4953348)。
解决方法 重试连接。
当使用 Ctrl-C 关闭代理时,事务可能会在存储库关闭后被清除(错误号 4934446)。
如果在处理消息或事务时关闭代理,代理可能会显示错误消息,原因是“存储库关闭后访问存储方法”。
解决方法 可以忽略此错误消息;代理只是正确地通知使用方出现的任何错误。此错误不影响系统的可靠性。
如果持久性存储库打开的目的地过多,代理将变为不可访问(错误号 4953354)。
解决方法 这种情况是由于代理达到了系统打开文件描述符限制所致。在 Solaris 和 Linux 上可使用 ulimit 命令来增加文件描述符限制。
目的地销毁后,使用方会被孤立(错误号 5060787)
目的地销毁后,活动的使用方将被孤立。使用方一旦孤立,他们将再也收不到消息(即使重新创建了目的地也是如此)。
解决方法 此问题没有解决方法。
无法使用 JMSMessageID 选择消息(错误号 6196233)。
解决方法 更改选择器,将以下表达式
JMSMessageID = "ID:message-id-string"
更改为以下表达式
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
队列浏览器显示未提交的消息(错误号 6264003)。
浏览队列内容时,已在事务中生成但尚未提交的消息可能会显示在队列浏览器枚举中。
解决方法 此问题没有解决方法。
在提交过程中,如果代理发生故障,消息可能变为不可用(错误号 6467874)。
在极少情况下,代理发生故障时事务中的消息可能无法传送到使用方。特别是,在提交处理过程中出现的一个小窗口,可能导致消息在持久性存储库中受阻。如果发生此情况,则在故障之后启动代理时会显示以下消息。
[06/Sep/2006:10:11:11 PDT] ERROR [B2085]: Loading Destination q0 [Queue] failed. Messages stored on that destination will not be available.: > com.sun.messaging.jmq.jmsserver.util.BrokerException: The message 8-129.145.180.87(b8:8b:26:15:41:26)-38998-1157562551217 has an associated acknowledgement list already.
解决方法 此问题没有解决方法。
没有适用于 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 |
|
此外,还可以再分发 LICENSE 和 COPYRIGHT 文件。
欲获得自本介质发行以来所发布的辅助功能,请联系 Sun 索取有关 "Section 508" 法规符合性的产品评估文档,以便确定哪些版本最适合部署辅助功能解决方案。可通过以下网址获取应用程序的更新版本:
http://sun.com/software/javaenterprisesystem/get.html
有关 Sun 在辅助功能方面所做出的努力,请访问 http://sun.com/access。
如果您在使用 Sun Java System Message Queue 期间遇到问题,请通过以下方式与 Sun 客户支持部门联系:
位于 http://www.sun.com/service/sunone/software 的 Sun 软件支持联机服务。
此站点上有一些链接,通过这些链接可以访问知识库、联机支持中心和 Product Tracker,还可了解维护方案以及用于联系支持部门的电话号码。
随维护合同一起分发的电话号码。
为了更好地帮助您解决问题,请在联系支持部门时提供以下信息:
问题描述,包括问题出现时的情况及其对您的操作的影响。
计算机类型、操作系统版本和产品版本,包括可能影响问题的所有修补程序和其他软件。
用来再现该问题的详细步骤。
所有错误日志或核心转储。
以下位置提供了一个 Sun Java System Message Queue 论坛:
http://swforum.sun.com/jive/forum.jspa?forumID=24
我们欢迎您的参与。
您可能会对 Java 技术论坛中的 JMS 论坛感兴趣。
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》。
从以下 Internet 位置可以找到有用的 Sun Java System 信息:
文档
专业服务
软件产品和服务
软件支持服务
支持和知识库
Sun 支持和培训服务
咨询和专业服务
开发者信息
Sun 开发者支持服务
软件培训