Sun Java System Message Queue 3 2005Q4 技术概述 |
附录 B
Message Queue 功能Message Queue 服务完全实现了 JMS 1.1 规范,以实现灵活而可靠的异步消息传送。有关 JMS 符合性相关问题的信息,请参见附录 A“可选 JMS 功能的 Message Queue 实现”。但是,Message Queue 所提供的功能超出了 JMS 要求。使用这些功能,可以集成和监视包含大量分布式组件的系统,这些组件在全天侯的关键任务操作中交换数以万计的消息。
本书已经在描述 Message Queue 服务的过程中介绍了这些功能。为方便起见,本附录提供了 Message Queue 功能概述:简要描述每项功能,概述使用该功能需要执行的操作,并提供了一些参考,这些参考指向本书中介绍这些功能的章节以及 Message Queue 文档集中详述这些功能的特定文档。
表 B-1 按字母顺序列出了 Message Queue 的功能,这些功能大致可分为以下类别。
- 集成支持
- 安全性
- 可扩展性
- 可用性
- 易管理性
- 灵活的服务器配置
- 性能
表 B-1 Message Queue 功能
功能
描述和参考
管理工具
Message Queue 服务包括 GUI 和命令行工具,用于管理目标、事务、长期订阅、受管理对象存储、用户系统信息库、符合 JDBC 的数据存储以及服务器证书。
参考
管理工具。
Message Queue 管理指南中的“管理任务和工具”。
验证
对试图与代理建立连接的用户进行验证。
Message Queue 服务对照存储在用户系统信息库中的值对用户的名称和密码进行验证,并根据验证结果确定是否允许用户连接到代理。系统信息库可以是随 Message Queue 提供的平面文件系统信息库,也可以是 LDAP 系统信息库(LDAP v2 或 v3 协议)。
用法
参考
Message Queue 管理指南中的“管理安全性”
授权
授予用户执行特定操作的权限。
Message Queue 服务允许您创建访问控制属性文件,以指定用户和用户组可以执行的操作。当客户端试图建立连接、创建生成方、创建使用方或浏览队列时,代理会检查此文件。
用法
编辑自动为代理实例创建的访问控制属性文件。
参考
Message Queue 管理指南中的“管理安全性”
自动重新连接
管理员对连接工厂受管理对象设置连接属性,以允许在连接失败时自动重新建立连接。可以重新连接到同一个代理,也可以连接到群集中的另一个代理(如果使用群集)。可以指定尝试重新连接的次数以及重试的时间间隔。对于群集代理,还可以指定循环访问代理列表的频率以及是否按特定顺序循环访问列表。
参考
连接服务。
Message Queue 管理指南中的“管理受管理对象”和“受管理对象的属性参考”。
代理群集
通过将许多代理实例组合到一个代理群集内,管理员可以在这些代理之间平衡客户端连接和消息传送。
用法
参考
Message Queue 管理指南中的“使用群集”。
代理配置
管理员可以通过设置代理属性来调整 Message Queue 服务的性能,其中包括路由服务、持久性服务、安全性、监视以及受管理对象的管理。
参考
Message Queue 管理指南中的“配置代理”和“代理属性参考”
C 客户端支持
C 客户端可以使用 Message Queue 消息传送服务来发送和接收消息。C API 使传统 C 应用程序和 C++ 应用程序可以参与基于 JMS 的消息传送。
支持 Message Queue C API 的 C 客户端运行时支持大多数标准 JMS 功能,但不支持以下 JMS 功能:使用受管理对象;映射、流或对象消息主体类型;分布式事务;以及队列浏览器。此外,C 客户端运行时也不支持 Message Queue 的大部分企业功能。
参考
Message Queue Developer's Guide for C Clients
压缩的消息
Java 客户端可以设置消息属性,以便让客户端运行时压缩所发送的消息。使用方运行时先解压缩消息,然后再将其传送给使用方。此外还提供了其他属性,可以使用这些属性确定压缩消息是否确实改善了性能。
参考
消息主体。
Message Queue Developer's Guide for Java Clients 中的 "Message Queue Clients: Design and Features"。
可配置的持久性
管理员可以对代理进行配置,以使用随 Message Queue 提供的基于文件的持久性存储,或者使用符合 JDBC 的数据库,如 Oracle 8i。
用法
设置与文件系统持久性存储器或与符合 JDBC 的存储器相关的代理属性。
参考
Message Queue 管理指南中的“配置代理”。
可配置的物理目标
创建目标时,管理员可以通过设置物理目标属性来定义某些消息传送行为。可以针对任何目标配置以下行为:未使用消息的最大数量或允许这些消息使用的最大内存(当超出内存限制时,代理应拒绝这些消息)、生成方和使用方的最大数量、消息的最大大小、单批传送的最大消息数、目标是否只能将消息传送给本地使用方以及是否可以将目标上的停用消息移到停用消息队列中。
参考
Message Queue 管理指南中的“管理物理目标”和“物理目标属性参考”。
连接 ping
管理员可以设置连接工厂属性,以指定从客户端运行时到代理之间 ping 操作的频率。此功能使得客户端可以尽早检测到失败的连接。
参考
连接服务。
Message Queue 管理指南中的“连接工厂属性”。
停用消息队列
Message Queue 消息服务通过创建停用消息队列来保存已过期或代理无法处理的消息。可以通过检查队列内容来监视和调整系统性能,或者解决系统性能问题。
参考
Message Queue 管理指南中的“管理物理目标”。
HTTP 连接
Java 客户端可以建立与代理之间的 HTTP 连接。
HTTP 传输允许通过防火墙传送消息。Message Queue 使用在 Web 服务器环境中运行的 HTTP 隧道 Servlet 来实现 HTTP 支持。客户端运行时将客户端生成的消息包装为 HTTP 请求,并借助于 HTTP 通过防火墙将其传送到隧道 Servlet。隧道 Servlet 从 HTTP 请求提取 JMS 消息,然后将该消息通过 TCP/IP 传送到代理。
用法
参考
Message Queue 管理指南中的附录 C“启用 HTTP 支持”
交互监视
管理员可以使用 imqcmd metrics 命令远程监视代理。监视的数据包括 JVM 度量、代理消息流、连接、连接资源、消息、目标消息流、目标使用方和目标资源的使用情况。
参考
监视服务。
Message Queue 管理指南中的“监视消息服务器”
J2EE 资源适配器
Message Queue 提供可以插入到符合 J2EE 的应用服务器的资源适配器。应用服务器通过将 Message Queue 用作 JMS 提供者来满足 J2EE 要求,即,在应用服务器中运行的分布式组件能够使用可靠的异步消息进行交互。
用法
通过设置适配器属性来配置适配器。
参考
Message Queue 管理指南中的“JMS 资源适配器属性参考”。
JNDI 服务提供者支持
客户端可以使用 JNDI API 查找受管理对象。
管理员可以使用 imqobjmgr 实用程序,在可通过 JNDI 访问的对象存储中添加、列出、更新和删除受管理对象。
参考
管理工具。
Message Queue 管理指南中的“命令参考”
LDAP 服务器支持
管理员可以将 LDAP 服务器用于受管理对象存储,以及用于存储验证和授权所需的用户信息。默认情况下,Message Queue 为这些数据提供基于文件的存储器。
用于受管理对象
参考
Message Queue 管理指南中的“管理安全性”
用于用户系统信息库
参考
安全服务。
Message Queue 管理指南中的“管理受管理对象”
内存资源管理
管理员可以配置以下行为:
参考
Message Queue 管理指南中的“配置代理”、“代理属性参考”和“物理目标属性参考”
消息压缩
开发者可以设置消息头属性,以便让客户端运行时在发送消息之前先进行压缩。客户端运行时先解压缩消息,然后再将其传送给使用方。
参考
消息属性。
Message Queue Developer's Guide for Java Clients 中的 "Message Compression"。
客户端的消息流控制
管理员或开发者可以通过配置连接来指定各种流限制和度量方案,以便最大限度地减少有效负荷消息与控制消息之间的冲突,进而最大限度地提高消息吞吐量。
用法
为连接工厂受管理对象(管理员)设置流控制属性,或者为连接工厂(开发者)设置流控制属性。
参考
Message Queue 管理指南中的“管理受管理对象”和“受管理对象的属性参考”。
基于消息的监视 API
Java 客户端可以使用监视 API 创建自定义的监视应用程序。监视应用程序是从特殊度量主题目标中检索度量消息的使用方。
用法
参考
监视服务。
Message Queue Developer's Guide for Java Clients 中的 "Using the Metrics Monitoring API"。
Message Queue 管理指南中的“监视消息服务器”。
多个使用方的队列传送
客户端可以为一个给定队列注册多个使用方。
管理员可以为该队列指定活动使用方的最大数量以及备份使用方的最大数量。代理将消息分发给注册的使用方,在使用方之间平衡负载以便系统可以进行扩展。
用法
设置物理目标属性 maxNumActiveConsumers 和 maxNumBackupConsumers。
参考
Message Queue 管理指南中的“物理目标属性”和“多使用方队列性能”。
可靠数据的持久性
要获得绝对的可靠性,可以将 imq.persist.file.sync.enabled 属性设置为 true,以此要求操作系统将数据同步写入持久性存储。这会避免因系统崩溃可能引起的数据丢失,但负面影响是会导致性能下降。请注意,尽管数据未丢失,但它们对于(群集中的)任何其他代理都不可用,因为群集代理当前未共享这些数据。当系统恢复时,代理可以可靠地继续执行操作。
参考
Message Queue 管理指南中的“代理属性参考”。
安全连接
客户端可以在 TCP/IP 和 HTTP 传输中使用安全套接字层 (Secure Socket Layer, SSL) 标准来保护消息传输。这些基于 SSL 的连接服务允许对在客户端与代理之间发送的消息进行加密。
SSL 支持基于自签名服务器证书。Message Queue 提供了一个实用程序,它可以生成专用/公共密钥对,并将公共密钥嵌入到自签名证书中。此证书将被传递到任何请求代理连接的客户端,该客户端将使用此证书建立加密连接。
用法
参考
安全服务。
Message Queue 管理指南中的“管理安全性”。
Message Queue Developer's Guide for Java Clients
Message Queue Developer's Guide for C Clients
SOAP 支持
客户端可以接收 SOAP (XML) 消息,将它们包装为 JMS 消息,并使用 Message Queue 像交换 JMS 消息一样来交换这些消息。
客户端可以使用特殊的 Servlet 来接收 SOAP 消息;它们可以使用一个实用程序类将 SOAP 消息包装为 JMS 消息,而使用另一个实用程序类从 JMS 消息中提取 SOAP 消息。客户端可以使用标准的 SAAJ 库来组合和分解 SOAP 消息。
参考
Message Queue Developer's Guide for Java Clients 中的 "Working With SOAP Message"。
线程管理
管理员可以指定分配给任何特定连接服务的最大线程数和最小线程数。管理员还可以确定使用共享线程模型能否提高连接服务的吞吐量,该模型允许非空闲连接使用空闲连接专用的线程。
用法
设置与连接服务线程相关的属性。
参考
Message Queue 管理指南中的“配置代理”。
可调整的性能
管理员可以设置代理属性,以便对内存使用情况、线程资源、消息流、连接服务、可靠性参数以及其他影响消息吞吐量和系统性能的因素进行调整。
参考
监视服务。
Message Queue 管理指南中的“监视消息服务器”和“分析和调整消息服务”