Sun GlassFish Message Queue 4.4 发行说明

Message Queue 4.3 的新增功能

Message Queue 4.3 是一个次要发行版,其中包含很多增强功能以及错误修复程序。本部分介绍了此发行版中包含的新增功能:

通用消息服务 (Universal Message Service, UMS)

Message Queue 4.3 新增了一项新的通用消息传送服务 (UMS) 和消息传送 API,该 API 允许从任何启用了 http 的设备访问 Message Queue。因此,几乎所有应用程序都可以与任何其他应用程序通信,并从可靠且有保障的 JMS 消息传送中受益。此外,UMS 还为 JMS 消息传送提供了增强的可伸缩性,从而允许消息传送客户端的数量在 Internet 范围内达到相当比例的程度。

体系结构

下图中显示了基本 UMS 体系结构:

图 1–1 UMS 体系结构

该图显示了 UMS 用作非 JMS 客户端与 JMS 提供者之间的网关。

UMS 在 Web 服务器中运行,它与语言和平台无关。UMS 可用作任何非 JMS 客户端应用程序与 JMS 提供者之间的网关。它接收使用 UMS API 发送的消息,将其转换为 JMS 消息,然后通过 JMS 提供者的本机协议将这些消息发送至 JMS 提供者中的目的地。同样,它从 JMS 提供者中的目的地获取消息,将其转换为文本或 SOAP 消息,然后通过 UMS API 将这些消息发送至客户端请求的非 JMS 客户端。

与语言无关且基于协议的简单 UMS API 同时支持基于 Web 和不基于 Web 的应用程序,并且可以与脚本语言和编程语言一起使用。API 以两种样式提供:一种是使用表现状态传输 (Representational State Transfer, REST) 样式协议的简单消息传送 API,另一种是将协议嵌入 SOAP 消息头的 XML 消息传送 API。但是,这两种样式的 API 只需一个 http 请求来发送或接收消息。

UMS API 的简单性和灵活性表现在:AJAX、.NET、Python、C、Java 和许多其他应用程序可以将文本消息和/或 SOAP(带有附件)消息发送至 JMS 目的地,或从 JMS 目的地接收消息。例如,Python 应用程序可以与 .NET 应用程序通信,iPhone 可以与 Java 应用程序通信等等。

对于 Message Queue 4.3,UMS 仅支持将 Message Queue 作为 JMS 提供者。

其他功能

UMS 并非只可用作上述的简单网关。它还支持有状态客户端会话和无状态客户端会话。根据客户端请求,UMS 可在多个服务请求之间保持客户端应用程序的会话状态。UMS 可以使用容器管理验证和/或配置为使用 Message Queue 代理验证客户端。UMS 还支持事务,从而允许客户端应用程序将多个服务请求作为一个整体进行提交或回滚。

由于 UMS 支持大量客户端同时连接到单个 Message Queue 代理,因此减轻了代理连接服务的负荷,从而实现了最大可伸缩性。此外,还可通过水平缩放增大 UMS 容量,以便允许在 Internet 范围内进行大负荷的消息传送。

由于基于协议的 UMS API 的简单性,在客户端无需任何客户端库。这样,API 便可以在将来进行扩展以实现其他 JMS 功能,而无需升级客户端应用程序。

使用 UMS

要使用 UMS,您需要将 UMS 部署到支持 Servlet 2.4 或更高版本规范的 Web 容器中,启动 Message Queue 代理,创建相应的目的地,并编写使用 UMS API 发送或接收消息的消息传送应用程序。

Message Queue 4.3 发行版中包含的 UMS imqums.war 文件安装在以下位置(因平台而异):

可以在适当的情况下重命名 .war 文件。

表 1–5 imqums.war 文件的位置

平台 

imqums.war 的位置

Solaris 

/usr/share/lib/imq

Linux 

/opt/sun/mq/share/lib

AIX 

IMQ_HOME/lib

Windows 

IMQ_HOME\lib

在将 imqums.war 部署到位于 localhost:port 的 Web 容器后,可在以下位置找到 UMS 文档:

http://localhost:port/imqums

或者,也可通过以下方式查找 UMS 文档:

支持的 Web 容器

当前,以下 Web 容器支持 UMS:

AIX 平台支持

Message Queue 4.3 提供了 AIX 平台软件包以及一个用于安装这些软件包的安装程序。

Message Queue AIX 实现支持以下软件:

有关安装说明,请参见《Sun GlassFish Message Queue 4.4 Installation Guide》中的第 4  章 “AIX Installation”

在 AIX 平台上,Message Queue 文件安装在单个 Message Queue 主目录 IMQ_HOME 下。IMQ_HOME 表示目录 mqInstallHome/mq,其中 mqInstallHome 是您在安装该产品时指定的安装主目录(默认情况下为 home-directory/MessageQueue)。

最终的 Message Queue 目录结构与 Windows 平台上的目录结构相同(请参见《Sun GlassFish Message Queue 4.4 Administration Guide》中的附录 A “Platform-Specific Locations of Message Queue Data”)。

Message Queue 的 AIX 平台支持包括对 Message Queue C-API 的支持。有关在 AIX 平台上生成和编译 C 应用程序的说明,请参见 XREF。

基于 Zip 的新安装程序

Message Queue 4.3 新增了一种新的安装程序,以便进行基于 Zip 的分发,而不是本机软件包分发。该安装程序用于为 AIX 平台安装新的 Message Queue .zip 分发包。

新安装程序将 Message Queue .zip 文件解压缩到您具有写入权限(无需超级用户权限)的任何目录中,并且还允许您在 Sun Connection 中注册 Message Queue 安装。

为了最大程度地减小下载包的大小,Java 运行时环境将不再包含在基于 zip 的分发包中(大多数站点已提供 Java 运行时环境)。因此,installer 命令需要通过使用 JAVA_HOME 环境变量或通过在命令行中使用 -j 选项来指定 JDK 或 JRE,如下所示:

$ installer -j JDK/JRE-path

其中 JDK/JRE-path 是指定 JDK 或 JRE 的路径。

扩展的平台支持

将对 Message Queue 4.3 更新的以下平台支持进行认证:

其他增强功能

Message Queue 4.3 中还包含以下增强功能:

Windows 平台上的新目录结构

Windows 平台上的 Message Queue 安装目录结构已由以前的版本修改为与 AIX 平台上的目录结构相匹配。将来,Solaris 和 Linux 平台也会采用此目录结构,以便在单台计算机上执行多个安装,以及通过 Sun Connection(Sun 托管的一项服务,可帮助跟踪、管理和维护 Sun 硬件和软件)自动更新 Message Queue(请参见安装程序的 Sun Connection 注册支持)。

新代理属性

以下新属性可用于配置代理:

表 1–6 代理路由和传送属性

属性 

类型 

默认值 

描述 

imq.transaction.producer.maxNumMsgs

整型 

1000

生成方可以在单个事务中处理的最大消息数。建议该值小于 5000,以防止资源耗尽。 

imq.transaction.consumer.maxNumMsgs

整型 

100

使用方可以在单个事务中处理的最大消息数。建议该值小于 1000,以防止资源耗尽。 

imq.persist.jdbc.connection.limit

整型 

5

可以对数据库打开的最大连接数。 

JMX 管理 API 增强功能

在 JMX API 中添加了一个新属性和几个复合数据键,如下所示:

有关详细信息,请参见《Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients》中的第 3  章 “Message Queue MBean Reference”

列出通配符订阅者的长期订阅

以下用于列出长期订阅的命令:

list dur [-d topicName]

已增强,以便可选择指定或不指定主题名称。如果不指定主题,该命令会列出所有主题(包括使用通配符命名约定的主题)的所有长期订阅。