Sun GlassFish Message Queue 4.4 发行说明

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 GlassFish Message Queue 4.4 Technical Overview》中的第 4  章 “Broker Clusters”。有关增强的代理群集的过程和参考信息,请参见《Sun GlassFish Message Queue 4.4 Administration Guide》中的第 10  章 “Configuring and Managing Broker Clusters”以及《Sun GlassFish Message Queue 4.4 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 GlassFish Message Queue 4.4 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 中。