| 免费下载:IBM® WebSphere® MQ V7.0.1 试用版 |
|---|
| 下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。 |
为了向您展示如何处理在中小企业(SMB)实施基于 IBM® WebSphere® MQ 的解决方案时遇到的挑战,文本使用一个总部和多个分支机构或者零售店的通用场景,每个机构都拥有各自的 WebSphere MQ 服务器。对于许多中小企业来说,后端基础架构投资可能会受到约束,因此您会面临网络故障或连接缓慢的问题。但是在深入研究这样一个环境的挑战之前,先了解一下健壮且理想的 WebSphere MQ 环境的特征:
- VPN 基础架构
- 静态 IP 地址
- 单一的 ISP
- 高带宽的网络速度
- 监测工具,比如 IBM Tivoli® Omegamon for XE Messaging
- 建议的硬件配置
如上所述,以下是 SMB 中存在的两个最普遍的网络问题:
- Internet 连通性故障 ——— 没有投资无线网络连接的 SMB 一般会选择使用静态 IP 地址的不同服务提供商的多个连接。当其中一个连接发生故障时,SMB 会切换(有时是手动切换)到另一个服务提供商的连接。
- 总部与零售店之间的通信缓慢 ——— 对于该问题,SMB 通常会优化应用程序来发送最小数据至分支服务器,并将其他通信推迟到深夜或其他低使用率期间。这样的安排可能需要重要的应用程序定制。
本文的剩余部分描述了以下次优条件、如何解决相关问题,以及如何使用 WebSphere MQ Performance Monitor (SupportPac MP08)。
- 动态 IP 地址
- 多个 ISP
- 总部与零售店之间使用低带宽网络速度
考虑两台 WebSphere MQ 服务器之间的典型 interqueue 通信场景,使用发送方-接收方通道,一端是总部,一端是零售店:
队列间通信

在该场景中,队列管理器 HQ.QM 给队列管理器 STORE.QM 发送一条消息。队列管理器 HQ.QM 具有以下 WebSphere MQ 对象:
- REMOTEQ(远程队列)
- TRANSQ(传输队列)
- HQ.STORE.CNL(从 HQ.QM 到 STORE.QM 的发送方通道)
同样地,队列管理器 STORE.QM 也具有以下 WebSphere MQ 对象:
- LOCALQ(本地队列)
- HQ.STORE.CNL(从 HQ.QM 到 STORE.QM 的接收方通道)
配置该设置的 mqsc 命令(1414 为监听端口号)如下所示:
发送方通道定义
define channel (HQ.STORE.CNL) chltype(SDR) +
conname('192.168.1.2(1414)') +
xmitq(TRANSQ)
|
接收方通道定义
define channel (HQ.STORE.CNL) chltype(rcvr) |
如果接收方(在我们的例子中是指零售店服务器)有一个分配给它的动态 IP 地址,发送方系统几乎不可能与接收方系统进行通信,而且发送方通道将保持在重试模式 ——— SMB 的一个常见问题。
发送方通道无法通信

您可以使用请求方-服务器通道在 WebSphere MQ 中让接收系统发起通信,进而解决该问题:
请求方-服务器通道

在请求方-服务器通道中,接收系统(零售店服务器)发起连接。一旦连接成功,消息将从总部服务器传送至零售店服务器。队列管理器 HQ.QM 具有以下 WebSphere MQ 对象:
- REMOTEQ(远程队列)
- TRANSQ(传输队列)
- HQ.STORE.CNL(服务器通道)
同样地,队列管理器 QM2 也具有以下 WebSphere MQ 对象:
- LOCALQ(本地队列)
- HQ.STORE.CNL(请求方通道)
以下是用来创建该配置的 MQSC 命令:
服务器通道定义
define channel (HQ.STORE.CNL) chltype(SVR) + xmitq(TRANSQ) |
请求方通道定义
define channel (HQ.STORE.CNL) chltype(RQSTR) +
conname('192.168.1.1(1414)')
|
发送方-接收方通道对和请求方-服务器通道在功能方面有着很大的区别 ——— 更多信息请参阅 WebSphere MQ V7 信息中心。
上述场景涉及到请求方-服务器通道,只要发送方系统的 IP 地址(192.168.1.1)不变,该通道就能工作正常。但是如果发送方系统有多个 ISP,并且其中一个出现故障,系统切换到另一个 ISP。在这种情况下,即使发送方有静态 IP 地址,每个 ISP 可能会从不同的域分配 IP 地址。请求方通道将再次无法发起到服务器通道的请求,并进入重试模式,因为 HQ 服务器系统的 IP 地址可能已经发生改变。
用于已改变 IP 地址的请求方通道

您可以通过在 CONNAME 中提供多个 IP 地址和端口号来解决该问题,CONNAME 是 WebSphere MQ V7 Refresh 1 (WebSphere MQ V7.0.1) 中的一个新特性。服务器通道的通道定义保持不变:
服务器通道定义
define channel (HQ.STORE.CNL) chltype(SVR) + xmitq(TRANSQ) |
然而,请求方通道的通道定义变为:
请求方通道定义
define channel (HQ.STORE.CNL) chltype(RQSTR) +
conname('192.168.0.1(1414),192.168.0.3(1414)')
|
因此,即使在发送方有多个 ISP 提供服务,您仍可以将他们添加到请求方通道的 CONNAME 设置中,并以逗号进行分隔:
发送方有多个 ISP

在该配置中,将以轮询方式尝试所有的 IP 地址。一旦请求方通道与服务器通道建立了连接,便会进入绑定状态,并最终进入运行模式。
默认情况下,WebSphere MQ 允许提交长达 4MB 的消息至某个队列,您可以在不使用分段的情况下将该限制增加至 100MB。WebSphere MQ 默认也允许最多 5000 条消息,您同样也可以增加该限制。假设 3004MB 的消息通过宽带速度为 1Mbps 的网络发送。传输大约需要 9600 秒或约 2 小时 40 分钟。随着带宽速度的下降,传输时间迅速增加:如果带宽速度下降至 256Kbps,传输时间将增加为 10 小时 40 分钟。
这种情况使得通道级压缩变得非常重要。它并不涉及许多配置方面的更改,但却大大提高传输速度。例如 95% 的压缩比(如果 WebSphere MQ 消息是 ASCII 文本格式这是可行的)。在这种情况下,一个 4MB 的消息被压缩至 200KB,而上述 3004MB 消息的传输在 1Mbps 带宽速度下将只需要大约 8 分钟,在 256kbps 带宽速度下需要 32 分钟。
要实现压缩,必须向发送方、接收方或请求方以及服务器通道应用相同的压缩算法,您可以使用 WebSphere MQ Explorer 或 runmqsc 脚本来实现:
默认情况下,通道并没有启用任何压缩算法,如下所示:
修改通道属性进行压缩

要启用压缩,单击 Message Compression 旁边的 Edit 按钮,将会打开一个下拉列表显示各种压缩算法:
受支持的多种压缩算法

- RLE ——— 运行长度编码压缩。如果相同的数据值出现在一个连续的块中,该块将被替换为一个表示运行和数据的数字。
- ZLIBFAST ——— 快速压缩算法
- ZLIBHIGH ——— 高比率的压缩
- ANY ——— 可以使用上述三种算法中的任何一种
您也可以选择多个压缩算法,按照优先次序尝试这些算法。另一端必须使用同样的压缩算法。
按优先次序进行压缩

您可以使用 runmqsc 达到同样的效果。以下的 runmqsc 脚本修改请求方和服务器通道的通道定义:
请求方通道定义
alter channel(HQ.STORE.CNL) + chltype(RQSTR) + COMPMSG(ZLIBFAST,ZLIBHIGH,RLE,NONE) |
服务器通道定义
alter channel(HQ.STORE.CNL) + chltype(RQSTR) + COMPMSG(ZLIBFAST,ZLIBHIGH,RLE,NONE) |
虽然请求方通道允许使用所有的压缩算法(ZLIBHIGH、ZLIBFAST、RLE、ANY 以及 NONE),但是服务器通道并不允许使用所有算法。
本节将向您展示如何使用 WebSphere MQ Performance Monitor (WebSphere MQ SupportPac MP08)。
- 下载 WebSphere MQ Performance Monitor。
- 按照 WebSphere MQ Performance Monitor 文档 的说明来安装和配置 WebSphere MQ Performance Monitor。
WebSphere MQ Performance Monitor 可以为队列管理器收集和分析队列、通道以及 MQI 调用的性能数据。系统管理员可以使用 WebSphere MQ Explorer 本身来监视短期的 WebSphere MQ 系统状态。
WebSphere MQ Performance Monitor 包含以下两个组件:
- Performance Monitor Agent for WebSphere MQ for Windows ——— 在 HO 队列管理器服务器上安装该组件。它从 WebSphere MQ 服务器获取队列管理器数据并将其发送到性能监视插件。如果 HO 服务器上有多个队列管理器,那么每个队列管理器都需要运行代理,这意味着一旦安装该组件,那么您就需要为每个需要监视的队列管理器来配置它。
- Performance Monitor Plug-in for WebSphere MQ for Windows and Linux ——— 该组件从监视代理中获取数据,并以图形格式显示短期趋势分析。该插件安装在 WebSphere MQ 驻留的服务器上。
WebSphere MQ Performance Monitor 在 WebSphere MQ Explorer 中提供短期趋势分析:
- 最近的应用程序记帐(用于队列管理器)
- 最近的 MQI 统计(用于队列管理器)
- 最近的队列统计(用于队列)
- 最近的队列记帐(用于队列)
- 最近的 MQI 队列统计(用于队列)
- 最近的通道性能(用于通道)
- 最近的 MQI 通道统计(用于通道)
有关插件和代理的更详细的信息,参见 WebSphere MQ Performance Monitor 文档。
以下列出的是一些由插件执行的分析快照:
通道级监视
通道级监视为各种时间间隔提供各种属性的图形展示,例如发送和接收的字节和缓冲、传输速度以及短期和长期的压缩率。
通道级监视

队列级监视
队列级监视为给定的时间间隔提供各种频率属性的图形展示,例如打开率、关闭率、获取字节比率、放置字节比率以及浏览率:
队列级监视 1

队列级监视也提供诸如当前深度、最高深度、消息放置、消息读取以及消息浏览等的属性:
队列级监视 2

本文描述了在 SMB 环境中使用 WebSphere MQ 的一些常见场景,并讨论了目的端动态 IP 地址、多个 ISP、低带宽的问题。本文还解释了 SMB 环境中的一些故障排除技术,并向您展示了如何使用 WebSphere MQ Performance Monitor 进行监视。
学习
- WebSphere MQ 资源
- 下载 WebSphere MQ Performance Monitor (SupportPac MP08)
Performance Monitor 可用作为 Windows 系统上的 WebSphere MQ 代理或作为 Windows 和 Linux 系统上的 WebSphere MQ Explorer 插件。您可以使用 Performance Monitor 为队列管理器收集和分析队列、通道以及 MQI 调用的性能数据,从而提供集成的性能监视和趋势分析来改进服务管理。 - WebSphere MQ Performance Monitor (SupportPac MP08) 文档
这个 6 页的 PDF文件提供了有关 Performance Monitor 的先决条件和安装的基本信息。 - WebSphere MQ V7 信息中心
一个可访问所有 WebSphere MQ V7 文档的 Web 门户,包含关于安装、配置和使用 WebSphere MQ V7 的概念、任务和参考信息。 - WebSphere MQ 开发人员资源页面
帮助您使用 WebSphere MQ 设计、开发和部署消息传递中间件,以将应用程序、Web 服务和事务集成到几乎任意平台上的技术资源。 - WebSphere MQ 产品页面
产品说明、产品新闻、培训信息、支持信息等。 - WebSphere MQ 文档库
WebSphere MQ 产品手册。 - IBM 红皮书:WebSphere MQ V7 特性和增强功能
描述消息队列技术的基本概念和好处,介绍 V7 的新特性,并提供了一个使用这些特性的业务场景。 - 下载 WebSphere MQ V7 的免费试用版
一个功能齐全的 WebSphere MQ V7 免费试用版,试用期为 90 天。 - WebSphere MQ 支持页面
一个支持问题及其解决方案的可搜索数据库,包含下载、修复程序、问题跟踪等。 - WebSphere MQ 公共新闻组
这不是一个 IBM 论坛,但您可以在此获得 WebSphere MQ 技术问题的答案,并与他人分享您的 WebSphere MQ 知识。 - WebSphere MQ SupportPacs
针对 WebSphere MQ 产品系列的可下载代码、文档和性能报告。
- 下载 WebSphere MQ Performance Monitor (SupportPac MP08)
- WebSphere 资源
- developerWorks WebSphere 开发人员资源
面向使用 WebSphere 产品的开发人员的技术信息和资源。developerWorks WebSphere 提供产品下载、how-to 信息、支持资源以及一个免费技术库,该技术库包含 2000 多篇技术文章、教程、最佳实践、IBM 红皮书和在线手册。 - developerWorks WebSphere 应用程序连通性开发人员资源
帮助您构建 WebSphere 应用程序连通性和业务集成解决方案的 how-to 文章、下载、教程、培训、产品信息等资源。 - developerWorks WebSphere 业务流程管理开发人员资源
访问 WebSphere BPM how-to 文章、下载、教程、 培训、产品信息等资源,帮助您建模、装配、部署和管理业务流 程。 - developerWorks WebSphere SOA 和 Web 服务开发人员资源
How-to 文章、下载、教程、培训、产品信息等资源,帮助您设计和构建WebSphere SOA 和 Web 服务解决方案。 - 最流行的 WebSphere 试用版下载
免费下载关键 WebSphere 产品试用版。 - WebSphere 论坛
特定于产品的论坛,可以在此获得技术问题的答案,并与其他 WebSphere 用户分享您的专业经验。 - IBM developerWorks 演示中心
下载并观看这些自运行演示,并了解 WebSphere 产品和技术如何帮助您的公司应对迅速变化和日益复杂的商业环境。 - developerWorks 时事通讯
developerWorks 新闻简讯提供了您感兴趣的主题的最新文章和信息。除 WebSphere 以外,还可以选择 Java、Linux、Open source、Rational、SOA、Web 服务和其他主题。立即订阅并设计您的定制邮件。 - IBM Press 的 WebSphere 相关图书
通过 Barnes & Noble 便捷地在线订购。 - WebSphere 相关活动
世界各地针对 WebSphere 开发人员的会议、商贸展览、网络广播和其他活动。
- developerWorks WebSphere 开发人员资源
- developerWorks 资源
- IBM 软件产品试用版下载
下载选定的 IBM ® DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 产品的免费试用版。 - developerWorks 博客
加入 developerWorks 用户和作者、IBM 编辑和开发人员的谈话。 - developerWorks 技术讲座
IBM 专家组织的免费技术会议,可以加速您的学习进度,并帮助您克服软件项目中的大多数难题。会议包括时长 1 小时的网络广播,以及在世界各个城市举办的半天和全天的实时会议。 - developerWorks 播客
收听新颖有趣的软件创新者访谈和讨论。 - IBM Education Assistant
多媒体教育模块集合,帮助您更好地理解 IBM 软件产品以及更高效地使用它们来满足您的业务需求。
- IBM 软件产品试用版下载
讨论
- 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
- 加入 IBM 软件下载与技术交流群组,参与在线交流。

