IBM Websphere MQ 6 基础培训入门教程

WebSphere MQ V6

 

概述

  • 很容易连接应用程序和系统
  • 一次性安全提供数据
  • 许多环境
    • 大量操作系统和硬件平台
    • 支持许多程序设计语言
    • 通信协议
    • 点对点和发布/订阅方式
    • 通过简单 API 全部可用
  • 行业消息的行业标准
  • 最近庆祝了成立十周年!

 

 

WebSphere MQ V6

 

主题

 

  • IBM 204-126 号发布书(2004 6 月)中发表了一项指导方针:

“IBM 计划...... 2005 年上半年......发布新版 WMQ。这些发布将使 ESB 创建和扩充变得更容易......”

  • 提高适用性
    • 文件传输简单,浏览速度快
    • 新增跨平台配置工具
  • 改进可管理性
    • 了解系统正在运行的服务,并影响它
    • 更容易确定问题和避免问题
  • 增强可用性
    • 利用 z/OS 服务
  • 扩充性能、容量和伸缩性
    • 利用 64 位地址空间
  • 本演示说明 IBM 如何达到此陈述的要求

由于计划推出新版 WMQ,我们尝试把要进行的各项工作分成几个主题。这些是该版本要优先实施的功能,而一个功能应当在实施之前归入一个或多个主题。(记住候选功能太多,总是超过我们在可接受的时间里或用接受的代码可以开发的功能数量。一个版本不能集成的功能可能会集成在下一个版本里。)

我们这次想研究的两个领域是:

  1. 使 WMQ 新用户很容易选择并快速使用
  2. 即使你有使用早期版本的经验,也更容易管理 WMQ

我们一直在开展 z/OS 特定的某些活动,完成共享队列工作最后阶段的开发

同时使许多增强功能反映更广泛的行业活动。

后面的幻灯片将详细说明其中的许多项目

 

WebSphere MQ V6

 

时间表

 

  • 2004 9 月开始开发 beta 程序
    • 该程序针对有限客户和合作伙伴
  • 2005 4 19 日发布
    • 发布之后在某些平台上公开进行 beta 测试
  • 2005 5 月发布分布式平台 Electronic GA(可下载)
  • 2005 5 月发布物理介质和 z/OS GA

 

WebSphere MQ V6

初期支持的平台

 

  • AIX 5(仅 64 位系统)
  • Solaris(仅 64 Sparc 系统)
  • HP-UX 11i(仅 64 PA-RISC
  • Linux/Intel32 位)、Linux/pSeries(仅 64 distros)和 Linux/zSeries
    • RHEL3(RHEL4)SuSE8 SuSe9
  • z/OS 1.4
  • Windows 2000XP2003
  • OS/400 V5R2 i5/OS V5R3

虽然某些操作系统的基本要求提高了,但 WMQ V6 支持的平台与 V5.3 基本相同。如要了解每种已测试/支持的操作系统的基本要求详情,浏览

支持软件网页定期在新环境通过测试后更新,是发布 WMQ 支持的软件的官方网站。

对于 Linux,你会发现支持环境是特定的分发版本(Red Hat SUSE),而不像 V5.3 那样列出前提条件。这与 IBM SWG 的政策是一致的,使得很容易比较不同的产品,以确保它们均有相同的必需软件。对于 Linux/zSeries,虽然在此平台上 WMQ 32 位产品,但我们将只测试 64 distros

在这一系列平台里,不包括对基于 Itanium 的任何操作系统的支持。

 

WebSphere MQ V6

 

支持状态

 

  • 使用 V5.3 V 5.3.1 的每个人都应该考虑升级到 V6
  • V5.2 支持在不久前停止了
    • WindowsUnix Linux 2004 1 1 日停止
    • z/OS OS/400 2004 4 30 日停止
  • V5.3 Distributed 支持结束日期在官方网站上标明未定
    • 这意味着将在停止支持之前提前至少 12 个月发出通知
    • Distributed SWG 支持战略有变化;比较接近 z/OS 对它的支持
      • 优于我们以前实行的按年延期政策
  • V 5.3.1 for z/OS 的支持结束日期也是未定
    • V5.3 for z/OS 的支持结束日期是 2005 10
  • 尚未就 V5.3 的支持结束日期发表声明
    • 结束日期将考虑到适当移植到 V6 所需的时间

了解这些日期非常重要!所有客户现在应该使用 V5.3(或 5.3.1 on z/OS)。如使用早期版本(有淘汰产品),他们将得不到支持。我们最终停止销售并支持没有升级到 V5 的某些旧平台版本。

分布式平台的规则变化好一些。 旨在更容易把一组产品集成在一起,使其有合理的使用寿命。

许多较旧的 SupportPacscat2 cat3)被删除或半隐藏了。所以很容易找到仍然与当前产品相关的支持或有用资料。

V5.3 for z/OS 没有支持结束日期;所有客户应该改用 V 5.3.1

尚未就 V5.3 的支持结束日期发表声明;结束日期将考虑到客户适当移植到 V6 所需的时间。即使到了正常的支持结束日期,通常还可以购买最多两年的附加支持。

 

 

WebSphere MQ V6

 

WMQ 简介

 

对于使用 Windows Linux 系统的 WMQ 新用户,有两种选择:

  1. 快速浏览
    • 演示 WMQ 概念和技术的动画
  2. 文件传输
    • 无需配置的简单应用程序。
    • 无需编写测试程序。
    • 命令行和图形用户界面
    • 非常非常简单......甚至不需要 CR/LF 转换

这是 WMQ Express V5.3 提供的最新版本

 

WebSphere MQ V6

 

文件传输

 

  • 这确实是很简单的传输程序
  • 它不包括任何数据转换,甚至不包括 ascii/ebcdic cr/lf 转换。
  • 有命令行,所以用户可能编写自动化程序。
  • 没有最大文件大小限制,因为文件被分割成多个 MQ 报文;不必把一个文件封装在一个报文里。

 

WebSphere MQ V6

 

使 WMQ 更容易配置

 

基于 Eclipse 的新图形配置工具

  • Linux Windows 上运行

代替 WMQ V5.3 for Windows 上的 MMC 管理单元

可以连接并配置所有平台上的 WMQ

  • 包括 WMQ V6 for z/OS(但不包括 z/OS 的早期版本)
  • 连接可以是本地客户机或直接客户机,或者通过中间 qmgr
  • 支持 SSL 安全通信

可扩展

  • 我们希望未来包括更多插件
  • 供应商和用户可以开发并无缝集成新功能

允许使用 Documented 接口

  • 对象右鼠标按钮菜单增加了选项
  • 新增最高级实体(例如队列管理器 "QSGs"
  • 插件不需要重复配置,例如获得队列表系列表

 

WebSphere MQ V6

 

配置工具

 

我们用类似的工具取代现有的基于 MMC 的图形工具,但建立在 Eclipse (IBM Workbench) 软件包之上。这提高了可移植性,即使初期只有 Windows Linux 支持它,其它平台稍后也可以支持它。

MMC 管理单元相比,有许多增强功能,包括:

  • 它可以控制 WMQ V6 for z/OS,包括共享队列等平台特有的功能
  • 它在连接远程队列管理器方面有更多变体,包括 SSL 通道
  • 它有文档化扩展点,允许开发并在无缝界面上显示更多插件

V6 的所有新功能均可在图形用户界面上使用,还可以管理 V5.3(和较旧的)分布式平台。

由于 Eclipse 插件具有部件化特性,所以 IBM 很容易在不中断其它功能的情况下,通过服务更新给 WMQ 增加新功能。

我们提供在默认情况下定制运行 WMQ 插件的 Workbench,但这些插件可以添加到在同一层面的其它 Workbench。例如当 Message Broker 工具使用 Eclipse 的同一层面时,可以显示一个包含消息流开发屏面的屏面,以及消息流要访问的队列的列表。WMQ 将建立在 Eclipse V3.01 之上。

下一组幻灯片是截屏,说明基本界面与 MMC 视图有多大程度的相似,但它很适合 Eclipse 的外观。一个截屏上突出显示的区域(过滤器)提供对稍后详细讨论的功能的访问。但是,它允许在屏面上进行简单选择 — IE 只显示深度大于 10 的队列。这更容易查看正在发生的事情,例如问题确定。

有许多选项,例如可以定制显示栏的顺序,以及保存模式。

 

WebSphere MQ V6

 

谁在使用队列管理器?

 

  • DISPLAY QSTATUS 始终显示谁在使用队列
  • 新命令 DISPLAY CONN 显示谁在线上,以及他们打开了哪些队列
  • 新命令 STOP CONN 强制断开连接(z/OS 不可用)

 

  • 同时显示 UOW 时间标记

V5.2 V5.3 增加了显示谁在访问队列的命令。V6 增加了一个可显示谁在访问队列管理器的新命令。它显示与 QSTATUS 类似的信息,以便确定用户通道名称、pid(进程 ID)、tid(线程 ID)、程序名称等。但它还显示如何建立连接,以及正在处理的任何事务的详细信息。可以用 UOW 信息查看哪些应用程序可能有长期运行的 UOW,以及哪些应用程序可能会使日志文件满了。它还显示事务是内部事务还是外部事务,它是否是全局事务的参与者等。

本页的第二个例子说明应用程序打开的队列的列表,以及 MQOPEN 使用了哪些选项。

在分布式平台上,CONN 标记可用于中断与 qmgr 的连接。WMQ 管理员可能没有操作系统权限删除错误应用程序,但可以删除它对 WMQ 的访问。不删除该程序,但停止正在进行的任何访问,来自该程序的任何 API 调用均将获得 CONNECTION_BROKEN。终端连接便于恢复日志文件继续记录事件,并可以正常停止队列管理器。出于技术原因,z/OS 在此阶段可能不实施此项服务,但该平台的其它增强功能(日志分流)可减少长期运行的 UoW 引起的问题。

 

WebSphere MQ V6

 

更容易连接应用程序和队列管理器

 

我们在前面看到了如何显示连接队列管理器的应用程序。此新屏面使你更容易指定自动与队列管理器一起启动(和停止)的应用程序。服务定义便于我们定义程序,并使它们与队列管理器一起启动。它取代 Windows 定制服务屏面。有一些人所共知的服务有特殊定义,例如 listeners command server,但还可以定义其它程序,例如代理 (broker) 或触发 (trigger) 监视器。有属性便于把 stdout/stderr 重定向到文件。

此功能只有分布式平台可用;z/OS 已经在操作系统里集成了此类功能。

 

 

WebSphere MQ V6

 

管理 z/OS — 增加 PCF 命令

 

  • 更容易编写管理和监视程序
    • 同一个程序可以在 z/OS 和分布式平台上运行
  • 它一直比较容易把 PCF 命令转换成 MQSC
  • 难点是分析响应
    • PCF 是结构化自我描述格式
    • MQSC 是伪英语随机排序
  • z/OS Command Server 现在可以处理这两种格式
  • 扩展后的 PCF 结构处理来自 QSG 的多组响应
    • 新结构的其它语言扩展
    • IE 64 位名称-值对
  • 所有适当的 z/OS 命令获得 PCF 定义
    • 仍然有几个命令仅适用于本地控制台
    • IE 启动/停止跟踪

z/OS 增加了 PCF 命令消息支持。因此,很容易编写一个可与分布式和 z/OS 队列管理器协同工作的管理应用程序。这可以缩短产品上市时间,以便支持新功能;并缩短编写内部管理工具所需的时间。创建一个 QALIAS 定义,所以你甚至不需要知道 z/OS 和分布式平台上的命令输入队列名称传统上是不一样的。

PCF 消息扩展了语言z/OS 控制要求新格式。PCF 定义有许多其它扩展,现在允许任意名称/对。

如你愿意,可以继续使用 MQSC 格式进行管理命令服务器将处理两种格式。

在管理 WMQ for z/OS 时,通过新的基于 Eclipse MQ Explorer 使用 PCF 界面。

共享队列可以提高可用性,因为当一个队列管理器或 LPAR 发生故障时,应用程序可以继续处理消息

功能已在 WMQ 的几个版本里分阶段发布了

  • 此版本完善了共享队列所需的核心功能

现在支持大于 63KB 的消息

  • 最大可达 100MB
  • 大小与专用队列里的消息相同

大于 63KB 的消息正文部分存储在 DB2

  • 短消息如先前一样存储在 CF
  • 用于与专用队列进行比较的读性能报告

管理结构容错

此版本完善了 WMQ 的共享队列支持功能。共享队列现在可以用与专用队列相同的方法使用。持续性消息和非持续性消息最大可达 100MB

队列管理器使用的耦合器 (Coupling Facility) 资源保持不变,即使是大消息,也不把大于 63KB 的消息有效负荷直接存储在 CF 里。相反,我们把指针放入 CF,把消息正文存储在 DB2 表里,该表随后供队列管理器共享。

把数据存储在 DB2 里比直接存储在 WMQ 里速度慢,我们发现与专用队列存储器相比,这些大消息的存储速度降低了。对于所有消息都很大的系统设计,建议不要采用这种方法。对于许多只有少量大消息的应用程序,偶尔降低消息存储速度并不重要,尤其是在你可以通过共享队列获得更高可用性(和更好的总体系统设计)的情况下。小消息的处理速度与 V5.3 相同。我们发现与把相同的消息存储在专用队列里相比,大持续性消息的存储速度至少降低 3/4

系统管理员必须启用大消息

  • 消息所在的 CF 结构必须是 CFLEVEL(4)
  • 共享队列的 MAXMSGL 必须设置为足够大的值,以便存储预计最大的消息
  • 需要配置 DB2

WMQ for z/OS 5.3.1 里,队列共享组管理 CF 结构发生故障将导致队列共享组 (QSG) 里所有队列管理器异常中止。因此,我们建议你的 CF 结构采用 CF 双工技术,降低 CF 结构发生故障的可能性。但这会导致有关的性能开销。在 V6 里,我们启用 QSG 里的队列管理器,实现 QSG 管理 CF 结构容错。在检测到此类故障时,每个队列管理器将根据内存里的数据重构自己的管理结构部分。同名队列管理器恢复将被暂停,直到队列管理器重构其管理结构部分,这意味着当发生故障的队列管理器重新启动时,故障队列管理器正在处理的 MQGET 消息和约定处理的 MQPUT 消息可由其它队列管理器处理。其它所有应用程序,包括共享队列应用程序,可以在管理结构部可用的情况下继续处理。

  • 此版本增强 z/OS 动态系统配置
  • 许多 CHIN 配置参数可以在线修改
    • 不必在 CSQXPARM 里设置
  • 日志分流可降低长期运行的 UoW 的影响
  • 动态添加和删除页面集和缓冲池
    • 页面集可以增大到 64GB,便于处理较大的队列
  • 动态添加和删除缓冲池中的缓冲区
  • 动态添加日志数据集
    • 在解决问题时,当前日志文件(IE 归档由于磁带设备脱机而不工作)可以增加更多日志数据集
  • 抢先动态页面集扩展

有一组新便于你更动态地调节 z/OS 队列管理器。在某些情况下自动管理资源,即抢先扩展,其中有的资源允许管理员采取措施。在所有情况下,其目的是不需要关闭/重新启动队列管理器。

V5.3 里,我们允许分布式平台上的队列增大到 2GB 以上。此时我们正在 z/OS 上进行类型的工作,把页面集增大到 64GB。这将使更多的消息(或更大的消息)可以保存在队列里。

日志分流是一种技术,允许把长期运行的工作单元的控制信息复制到日至结尾,使队列管理器在重新启动过程中不需要处理大量日志。这受检查点间隔的控制。长 UoW 可能最终仍然会被取消掉,但这应该可以降低影响。

来自 CSQXPARM 的通道启动程序参数现在可以用 ALTER QMGR 命令控制。因此,在更改值时,不需要重新启动 CHIN

 

 

WebSphere MQ V6

 

提高分布式平台的可用性

 

  • 提供日志文件信息,以便制定灾难恢复解决方案
  • 队列管理器报告所需的、正在使用的、不再需要的日志文件
    • 当你使用线性记录时
  • 强制把日志记录到新日志文件的命令
    • 现在可以在特定时间获得一致的日志文件副本或备份
  • 可以在需要的情况下,在灾难恢复站点和备份队列管理器上重放日志文件
    • 缩短在实况现场重新启动所需的时间
  • 同时提高可配置活动日志空间的数量

WMQ 日志文件管理提出了许多要求。尤其是我们想使恢复解决方案设计更容易,特别是灾难恢复解决方案。

因此,可以生成报告,说明需要哪些日志的信息。这始终可以从其它途径获得(在错误日志里输入的命令响应),但现在可以把这些信息从队列管理器推到管理工具里。有一个新命令将强制日志提高到一个新水平;这便于你把较早时候的所有日志文件复制到备份(灾难恢复)位置,在那里可以了解 qmgr 的状态。

在不全面启动队列管理器的情况下,如可在主站点访问日志文件,可以把灾难恢复站点配置为动态播放日志文件的原位置的副本。这意味着如果需要全面重新启动,只需要播放最近的日志文件。

还有一项要求允许较大和/或较多的日志文件在此版本里,Unix 平台活动日志大小从 4GB 提高到 128GBWindows 平台提高到 64GB

 

 

WebSphere MQ V6

 

更多状态

 

  • 问题确定(和问题避免)指示器
    • 显示有关活动的同时信息
  • 显示 CHSTATUS
    • 群集传输队列子深度和平均吞吐量时间
    • 平均批量大小
    • 子状态” — 在退出时通过连接发送数据,并等待名称服务器响应。
    • 远程端的响应时间
  • 显示 QSTATUS
    • 消息在队列里停留的平均时间(短期平均值和长期平均值)
    • 上次 GET/PUT 时间
    • 仍然在队列里的最旧的消息

分布式队列管理器和 z/OS 队列管理器均有此新功能。它扩充了队列和通道的状态信息。

对于队列而言,你现在可以查看队列里哪些消息是最旧的。你还可以查看消息通过队列的平均速度。如平均速度很低,最旧的消息很旧,可能表示一个应用程序在通过 msgid/correlid 执行 get 操作,消息的格式不好,或者消息没有正确标识符。如所有消息在队列里停留的时间均很长,可能表示正在服务的应用程序负荷过重,或者需要多台服务器处理输入信息。

通道也有类似的信息,群集通道可以报告有关的传输队列或子队列。此外还有更详细的状态,不仅限于 RUNNING RETRY 等,可以准确显示通道正在做什么。例如此时正在执行用户退出,还是调用 TCP/IP 名称服务器。

此订单详情的一个重要目的是使收集信息的(性能)开销保持在很低的水平上。例如可能通常不接受涉及到队列扫描的任何东西。所有这些信息均在队列管理器内部使用,也很容易派生出来。

 

WebSphere MQ V6

 

命令显示过滤

 

  • WHERE 子句执行的 PCF MQSC 命令
    • 所有对象类型;任何属性
  • 一个属性可以用普通运算符过滤
    • GTLTEQNEGELECT ["contains"]EX ["excludes"]
    • 没有 AND OR 组合
  • 几个常见问题:
    • 告诉我用非提交事务使日志文件被填满的应用程序
    • 告诉我消息停留时间超过 5 分钟的队列
    • 告诉我最近没有因为介质恢复而被映像的队列
    • 告诉我一个应用程序使用的所有队列
  • 易于编写这些请求的脚本
    • 然后可以使用响应采取措施

MQSC 增加了一个简单 WHERE 子句,限制 DISPLAY 命令返回的数据的数量。只能添加一个属性,但对于问题确定和状态查询而言,这已经足够了。不允许使用 AND/OR 组合。

PCF 命令也可以使用相同的查询,z/OS 现在当然支持此查询。

正如我们在早期版本里看到的那样,图形用户界面上的过滤器选项是通过把它传递到命令服务器实现的。

队列管理器过滤是对资源的有效利用,一个消息返回一个响应,并非所有管理工具都进行过滤。就系统管理而言,这可以减少传输的消息数。

很容易编写可发出这些命令的脚本,它可以反映客户用户里的典型问题,并利用响应执行某些操作,例如强制应用程序与队列管理器断开,重新启动服务器应用程序,或者给网络运营中心生成通知

 

WebSphere MQ V6

 

提高 WMQ Clusters 的灵活性

 

  • 新选项使大群集更容易处理
    • 建立在客户的实际环境之上
  • 可以建立在所有主服务器不可用时自动使用的备用网络
  • 客户限制小客户机访问的服务器的数量
  • 可以覆盖如存在,始终选择本地队列规则
  • 可以要求把更多工作发送到功能更强的服务器
  • 没有服务器自动反馈;属性可通过系统监视器调节

许多可控制 WMQ Clusters 工作负荷平衡功能的选项。

所有这些选项均源于客户体验和要求,有的客户已经建立了超大型群集。

没有自动负荷动态通知功能,我们不检查机器的工作负荷有多大,但这可以采用定制代码添加。这样做的原因之一是很难一概而论地确定机器是否繁忙。

新增队列属性、队列管理器属性和群集通道属性

在确定循环消息分发的优先级并分配工作负荷时具有更大的灵活性

默认性能不变

更容易建立备用/待机网络,在所有正常队列管理器不可用时只使用这些队列管理器

更容易限制活动出站通道的数量

更容易分配工作负荷,使大服务器获得更多工作负荷

 

WebSphere MQ V6

 

新增 Cluster 选项

 

  • 负荷平衡和优先级
  • 包括本地实例

 

WebSphere MQ V6

 

系统统计

 

统计信息可用于检查应用程序和队列管理器正在做什么。统计信息可用于记账或容量规划。

此版本通过“PCF 事件消息给分布式管理员提供 SMF 风格的信息

在此版本里,事件消息里有更多可用信息。PCF 语言扩充了,不仅限于 z/OS,同时允许增加更多复杂功能。例如可以把元素组合成子结构,允许 PCF 消息有任意名称/值内存。还有 64 位整数数据类型。

这些新结构是支持几个功能所必需的,包括这一个:与队列管理器和连接应用程序内部活动 SMF 报告相当的功能。正如 SMF 报告一样,你可以查看 qmgr 的统计信息,以及给每个应用程序生成的记账信息。

队列管理器(在移植过程中,如有)自动创建两个新事件队列存储事件消息。

这些信息类似 SMF 生成的信息;我们利用在 z/OS 上获得经验决定哪些准确元素有用。

在应用程序结束时 (MQDISC),按可配置间隔生成信息。RESET QMGR 命令还有一个选项强制立刻发送统计信息。

示例程序 amqsmon 可用于格式化事件消息,是生成此图表输出的程序。包括源代码。

正如在 z/OS 上一样,一旦生成消息,WMQ 不做与该数据有关的任何事情。假定收集此信息的任何人将购买或编写一个工具收集事件消息,并以某种方式处理这些消息。

 

WebSphere MQ V6

 

网络配置检查器 — WMQ 跟踪路径

 

  • 生成的显示消息流的报告
  • 传输队列、通道名称、末端队列
  • 时间标记
  • 可用于确认群集工作负荷分发

此功能便于调试 WMQ 网络

对于已经发送的现有消息,它不回答查找问题。但它便于你确定消息可能发到哪里去了。跟踪程序消息被发送到网络里,并被放入一个队列里,并在到达最终目的地之前把它经过的所有通道和传输队列报告回去,它在到达最终目的地之后可能会被自动丢弃。

报告生成受 MQMD 里的标志的控制。从理论上讲,任何应用程序都可以打开这些标志,你可以获得网络传输的每个消息的报告,但这样做显然会使系统不堪重负。这主要用于验证配置。

分布式平台提供一个命令 (dspmqrte) 生成消息,它有许多报告配置选项在远端整理在每个中继段生成的独立报告等。由于 dspmqrte 可以作为客户机连接,所以可用它调试源自 z/OS 队列管理器的消息流。

消息格式和报告添加或生成方式可以实现文档化。潜在用途之一是让应用程序把自己的活动信息添加到他们处理的消息里。该体系结构是专门为这一目的而设计的。

 

WebSphere MQ V6

 

典型输出

 

Activity:

        ApplName: 'es/MQSeries/bin/dspmqrte.EXE'

 ApplType: WindowsNT

 ActivityDesc: ' WebSphere MQ Display Route App'

 

Operation:

        OperationType: Put

        OperationDate: '20040907'

        OperationTime: '12431483'

        QMgrName: 'QMA'

        QName: 'RQMC'

        ResolvedQName: 'QMB'

        RemoteQName: 'RQMC'

        RemoteQMgrName: 'QMB'

 

 TraceRoute:

        RecordedActivities: 1

        UnrecordedActivities: 0

        DiscontinuityCount: 0

        MaxActivities: Unlimited

        RouteAccumulation: None

        RouteForwarding: IfSupported

        RouteDelivery: No

                                                                   

                                                                 

Activity:

 ApplName: 'es/MQSeries/bin/AMQRMPPA.EXE'

 ApplType: WindowsNT

 ActivityDesc: 'Receiving Message

Channel Agent'

 

Operation:

  OperationType: Receive

  OperationDate: '20040907'

  OperationTime: '12431483'

 

QMgrName: 'QMC                                             '

  RemoteQMgrName: 'QMB                                             '

  ChannelName: 'TO.QMC'

  ChannelType: Receiver

-----------------------------------

Operation:

  OperationType: Discard

  OperationDate: '20040907'

  OperationTime: '12431483'

 

QMgrName: 'QMC                                             '

  QName: 'QMC                                             '

  Feedback: NotDelivered

 

TraceRoute:

  RecordedActivities: 5

  UnrecordedActivities: 0

dspmqrte 命令选项显示生成的输出类型。你可以看到真实设置生成的报告开头,例如前面的图表上的图形。你可以看到消息被放入 QMA 上的远程队列 RQMC 里,它被解析为传输队列 (QMB)。最终阶段表示 MCA 如何接受消息,以及在它到达目标队列之后被如何丢弃掉。

完整报告有更详细的信息,包括正在传输的消息的 MQMD。但此选项显示其中一些要点。

 

 

 

WebSphere MQ V6

 

标准 — JMS 1.1 J2EE

 

  • 当前 J2EE 规范需要 JMS 1.1
  • 把发布/订阅方法和点对点方法合并成一组方法
    • 向后兼容
    • JMS 应用程序仍然可以使用较旧的 1.02 API
  • V5.3 FP06 V6 配备
  • WAS 始终支持 WMQ JMSWebLogic 现在也支持
    • 它不是 WAS6 的嵌入式消息传递代理,但仍然(当然)可以使用
  • V5.3 FP08 V6 还包括 MA 0C Publish/Subscribe 部件
    • 在不下载或购买附加代码的情况下更容易使用全部 JMS 功能

WMQ V5.3 FP06 包括更新版 JMS 类,与当前的 JMS 标准版相匹配。它是希望支持 J2EE 1.4 标准的任何应用服务器必需的工具,但它确实是很有用的东西。

JMS 1.02 最大的区别是简化类结构,并统一发布/订阅操作和点对点操作。现在不调用 CreateQueueConnection,你只能执行 CreateConnection 操作。它允许一个事务跨越发布/订阅操作和点对点操作,假定二者都要经过相同对话(用 WMQ 术语来说是通过同一个 hConn),不需要两阶段提交协调器。

在保持较旧的 API 时,现有 JMS 程序的工作保持不变。

WAS6 集成了新的嵌入式消息传递代理,即 WebSphere Platform Messaging,取代了(作为WAS5 一部分的)WMQ V5.3 使用的蹩脚代理。这种新代理(不同于旧代理)可用于连接外部 WMQ 网络。你仍然可以直接把 WMQ JMS 用作替代代理。

WAS 并非 WMQ 正式支持的唯一应用服务器。WebLogic 也在一些平台上测试过,可以支持。

MA 0C Publish/Subscribe SupportPac 现在是基础产品的一部分。这使人们更容易获得代码,尤其是在 V6 64 位变革需要另一个 SupportPac 版本的时候。

 

 

WebSphere MQ V6

 

标准基于 WMQ Web 服务

 

  • WMQ V6 配备 MA0R SupportPac 的更新集成版本
  • 基于可靠传输而非 http 的透明 SOAP 消息
  • 发送器和监听器支持
    • Axis host Web Services 环境
    • .NET host Web Services 环境
  • 客户机和服务器 SOAP 层可以是异构环境
    • IE .NET 客户机至 Java 服务器
    • 如它们使用 HTTP 互操作,也可以使用 WMQ 互操作
    • 同时计划与 WAS SOAP/JMS CICS SOAP/MQ 互操作
  • 部署脚本帮助
  • 服务代码不变
    • 现在与 WMQ 监听器集成在一起
    • 可以在事务中运行
  • 简单客户机代码(几乎)不变
    • 客户机或代理需要包括 ‘wmq:’ 前缀位置
    • 通常采用部署工具嵌入代理
    • SOAP 层交换建立在此前缀之上
    • 可以使用 WebSphere Studio ADVisual Studio .NET 等生成
    • 还可以定位 Web Services,便于日后提供不同步支持
      • 尚未有正式标准
  • WSDL
    • 关于 SOAP/HTTP
    • 具有 'wmq:queueName…' 形式的目标 uri
    • 选项控制其它 WMQ 详细资料,例如队列管理器、持续性等

 

WebSphere MQ V6

 

标准 — IPv6

 

  • 新版 TCP/IP 协议
  • 预计在此版本的使用寿命内,IPv6 会变得越来越重要
    • 允许使用更多地址
  • WMQ 属性和参数扩展便于使用 IPv6 地址
    • IE 而非 9.20.3 .4,你可以有 fe80:43e4:0204:acff:fe97: 2c 34:fde0:3485
    • 32 位扩展到 128
  • IPADDR 确定监听哪个/哪些协议堆
  • CONNAME LOCLADDR 确定基于哪个协议堆发送
  • 群集仍然与 IPv6 协议堆互操作

优点太多了,不胜枚举! WMQ 本身需要一点外部更改;主要是确保操作系统正确配置,特别是双协议堆(IPv4 IPv6)配置。新的 qmgr 属性定义在两个协议堆都可用的情况下,优先使用哪个协议堆。

注意 Windows 2000 不支持 IPv6 协议堆,如你运行 Windows,必须使用支持 IPv6 Windows XP SP1 Windows 2003

 

WebSphere MQ V6

 

SSL 增强

 

  • 动态刷新任何高速缓存仓库和 LDAP 服务器数据
    • CRL 位置
    • 更新证书
    • 不需要重新启动 CHIN
  • Windows 平台上,SSL 工具现在使用与 Unix 平台相同的工具箱
    • 提供共同模式
    • V5.3 配置可以移植到 gskit 仓库
  • FIPS-140 证书
    • gskit 里的加密模块有 FIPS 认证
    • WMQ 可以配置为只允许经过认证的算法
  • 安全出口函数 chstatus 可以使用 Certificate Authority Distinguished Name
    • 显示谁授权用户证书
    • 使你能够区别不同验证机构验证的同一个用户

SSL 处理有少许变化

主要是移植到 Windows 之后,使用 gskit 工具箱,而不是 Microsoft SSL 代理。这样做有许多优点,包括多个平台使用通用管理模式。提供一个工具把证书从 Microsoft 仓库里取出来放入类似的 gskit 仓库。

提供 REFRESH 命令,当证书链发生变化时,例如取代过期证书,不需要重新启动通道程序。下次启动一个通道时,自动重读修改后的仓库。它还刷新用于访问 CRL 的任何高速缓存 LDAP 服务器连接信息。CRL 本身不高速缓存,只高速缓存保存 CRL 的服务器位置。

 

 

WebSphere MQ V6

 

伸缩性和性能

 

  • AIXHP-UXSolaris Linux/pSeries 上,WMQ 现在是 64 位产品
    • 支持现有的 32 位应用程序
    • 提供两组 MQI 库,分别用于 32 位和 64 位开发
    • 大多数出口(IE 通道)将需要按两种规格提供
  • 某些客户希望他们的应用程序使用 64 位内存
    • 应用程序的性能没有区别,除非重新设计应用程序
  • 优点主要集中在队列管理器上
    • 更像数据库引擎
  • 允许 WMQ 同时处理更多数据(消息和队列)
    • 全新的内部设计提高 get-by-correlid 等操作的性能
    • 这些结构占用 32 位系统上十分匮乏的内存

在此版本里,我们只支持 64 AIXHP-UX (PA-RISC)Solaris Linux/pSeries 系统。这是因为如使用 64 位内存地址范围,就可以大大缓解队列管理器的限制。最近几年销售的大多数 Unix 机器都能运行 64 位程序。队列管理器有一些内部变化,例如 correlid 索引功能更好,现在可以使用扩充内存了。

现有应用程序的运行保持不变,我们将推出 32 位版本的 libmqm。但出口等某些系统级部件可在 64 位进程里运行的任何东西需要重新编译。这包括 API 出口、通道出口和数据转换出口。与队列管理器的其它程序一样,通道程序将是 64 位进程。

新应用程序可以选择使用 32 位还是 64 位绑定到队列管理器。此类选择很可能要根据 WMQ 范围之外的因素来确定;无论作出何种选择,不大可能影响 WMQ 的性能。在大多数情况下,重新编译的代码不会立刻把性能优势表现出来;如要充分利用大内存,通常需要重新设计应用程序。

 

 

WebSphere MQ V6

 

WMQ V6 性能

 

  • 提高持续消息吞吐量
    • 客户机定标吞吐量较大
    • AIX Linux (X & Z) 提高 20% 以上
    • 分析并重新设计了高应用封锁
  • 高性能非持续消息
    • 尽管有附加功能,性能还是保持不变
  • 由于采用 64 位和功能,虚拟内存(交换文件)增加了

提高性能示例

 

WebSphere MQ V6

 

移植 V5.3 删除的功能

 

  • 32 hw for AIXSolaris HP-UX
    • 32 位应用程序支持保留
  • 移植到 64 位操作系统
  • DCE
    • HP-UX ("*_d")
    • DCE 安全出口和名称服务出口
  • Windows NT 支持
  • AMI on z/OS -> Cat3 SupportPac
  • CICS Mover
  • Windows 上的 MMC 管理单元
  • Windows 自动启动服务
  • AIX UDP 传输协议
  • 使用这些的应用程序需要重新链接
    • 使用 SSL 加强安全
  • 移植到较新的 Windows 平台
  • 与其它平台一致
  • 使用 CHIN
  • 使用新的 Eclipse 插件
  • 使用新的 WMQ 服务对象
  • 使用 TCP/IP

此版本删除了这些功能,右边显示建议的替代产品(如有)

 

WebSphere MQ V6

 

其它 — z/OS

 

  • MQSC/PCF 命令审计跟踪
  • 多个 TCP/IP 协议堆
  • IMS Bridge 使用的 SUSPEND/RESUME Bridge 命令
  • 提高了 Passticket 安全验证粒度
  • 增加了通道 Message Retry 参数,以便与分布式平台相匹配

z/OS 上,MQSC PCF 命令可以被报告到事件队列。这便于审计跟踪谁发出了哪个命令。它使用 V5.3 提供的配置更改事件,向队列管理器描述操作更改详情。

内部变化可以更有效地在不同映像上有多个 CICS 区,便于从同一个共享内存读取数据。

SUSPEND/RESUME 支持允许 IMS Bridge 暂停下来发出新请求,并允许返回应答。这适用于共享内存和非共享内存,并提供节流机制。

passticket 允许在与一个队列相关的 STGCLASS 定义里指定应用程序名称用于 RACF passticket 检查 从而提高更大的安全检查粒度

 

WebSphere MQ V6

 

其它分布式平台

 

  • 安全
    • 管理命令 (setmqaut etc) 获得与 PCF 相当的安全
    • 基于 OAM 的通道操作安全
    • 新出口点便于本地验证
  • 某些错误记录项的任选过滤
  • .Net 触发监视器
  • 所有分布式平台包括 Pub/Sub Broker (nee MA 0C )
  • 使用客户机通道表的 JMS Java
  • 支持用 C 语言编写的通道出口的 JMS Java

分布式平台上的 auth 命令现在可以通过 PCF 命令远程发出。这便于集中管理工具管理 ACL

OAM 接口扩展同时允许修改定制编写的模块,用户 ID 用于本地绑定应用程序。MQCONNX 增加了用户 ID/口令字段;这些字段被传递到 OAM。注意配备 WMQ OAM 不进行任何验证。但应该有一个例子说明很容易增加验证(OAM 的链接工具便于编写仅验证模块,并保持标准 OAM 用于其它任何地方)。

错误日志过滤便于更容易地在错误日志里查看重大事件:当发生多个类似的事件时,它们将被一个消息所取代,提供类似上一个消息在 30 秒之内重复出现了 10 的说明。尤其是某些启动/停止消息要被过滤掉;在系统发生故障后重新启动队列管理器时,尝试同时重新连接数百个通道,过滤很有用。某些消息可以整个进行压缩处理。

新对象类型 SERVICE 使所有分布式平台可以在队列管理器启动时自动启动应用程序。这取代了 Windows MMC 图形用户界面上的定制服务。z/OS 操作系统有合适的机制可用,不需要此功能。

分布式平台上的通道现在可以把安全控制应用于它们,所以有的人可以启动/停止通道,但不能修改定义。

Java 类更新使管理员更容易设置监视器,不必理会正在使用的客户机。你再也不必了解客户机程序是否是用 Java 编写的。

V6 还具备 FP08 for V5.3 提供的 MA 0C 发布/订阅代理。这意味着你不必下载 V6 64 位平台可能需要的新代码

 

WebSphere MQ V6

 

总结

 

  • 我们的核心消息发送技术的主要增强功能
  • 建立在企业解决方案所需的、经过实践考验的原理之上
  • 包括了许多客户需求

本演示涵盖的内容不到 WMQ V6 正在实施的约 200 项技术的一半。我挑选了一些最重要的项目。(未提及的某些项目照常提供,或者是在此提及的较大项目的前提条件,但没有其它实际功能。

 

目录 目录 2 前言 9 本书范围 9 本书读者 9 进一步参考资料 10 第一部分 Websphere MQ原理和体系结构 11 第一章Websphere MQ原理 11 目标 11 1.1中间件 11 1.1.1中间件的优点 11 1.1.2中间件的分类 12 1.2三种通信技术的比较 13 1.3 WebSphere MQ的原理 15 1.4 WebSphere MQ的重要特点 16 1.4.1统一接口 16 1.4.2处理不依赖时间的限制 16 1.4.3给分布式处理提供的强健的中间件 16 1.5本章小节 17 1.6本章练习 17 第二章Websphere MQ体系结构 18 目标 18 2.1基本概念 18 2.1.1 WebSphere MQ对象(objects) 18 2.1.2 消息 19 2.1.3 队列 20 2.1.4队列管理器 24 2.1.4通道 25 2.1.5进程 29 2.1.6群集 29 2.1.7名称列表 29 2.1.8认证信息对象 30 2.1.9系统缺省对象 30 2.1.10 MQI(message queue interface) 30 2.2体系结构 30 2.2.1 WebSphere MQ和消息排队 31 2.2.2 队列管理器的进程 32 2.3客户机和服务器 33 客户机-服务器环境中的 WebSphere MQ 应用程序 33 2.4触发机制 33 2.4.1触发的概念 33 2.4.2触发类型 34 2.4.3触发的工作原理 35 2.5 队列管理器群集 36 2.5.1 群集的概念 36 2.5.2 群集的优点 37 2.5.3 群集的组件 38 2.5.4 创建群集 38 2.5.5 实现负载均衡 39 2.5.6 群集管理 40 2.6本章小结 41 2.7本章练习 41 第二部分 Websphere MQ系统管理 43 第三章WebSphere MQ系统安装 43 目标 43 3.1 规划安装 43 3.1.1 硬件要求 43 3.1.2 软件要求 44 3.2 安装 WebSphere MQ 46 3.2.1 WebSphere MQ 文档 46 3.2.2 WebSphere MQ安装 47 3.3 验证安装 49 3.3.1安装验证 49 3.3.2测试对象 49 3.4 本章小结 50 3.5本章练习 50 第四章WebSphere MQ 的管理 51 目标 51 4.1 本地和远程管理 51 4.2 使用命令管理 WebSphere MQ 51 4.2.1控制命令 52 4.2.2WebSphere MQ 脚本(MQSC)命令 52 4.2.3PCF 命令 54 4.3 WebSphere MQ 配置 56 4.3.1在 Windows 系统上更改配置信息 56 4.3.2 在 UNIX 系统上更改配置信息 57 4.4 WebSphere MQ 安全性 60 管理 WebSphere MQ 的权限 60 使用WebSphere MQ 对象的权限 61 4.5 WebSphere MQ 事务性支持 61 4.6 WebSphere MQ 死信队列处理程序 62 4.7本章小结 62 4.8本章练习 63 第五章WebSphere MQ 控制命令 64 目标 64 5.1 如何使用控制命令 64 WebSphere MQ 对象的名称 64 5.2 控制命令 65 控制命令集 65 控制命令举例 66 5.3 本章小结 66 5.4本章练习 66 第六章WebSphere MQ 互连通信 68 目标 68 6.1基本概念 68 6.1.1 什么是互连通信 68 6.1.2 分布式队列组件 72 6.1.3 死信队列 75 6.1.4怎样到达远程队列管理器 75 6.2 实现应用程序通信 77 6.2.1发送消息到远程队列管理器 77 6.2.2触发通道 79 6.2.3消息的安全性 80 6.2.4 WebSphere MQ对象配置实例 81 6.3通道的维护 83 6.3.1通道的状态 83 6.3.2通道维护命令 84 6.3.3设置MaxChannels和MaxActiveChannels属性 88 6.4配置侦听程序 88 6.4.1 Windows 平台 88 6.4.2 unix 平台 88 6.5本章小结 89 6.6本章练习 89 第七章 WebSphere MQ 恢复和重新启动 90 目标 90 7.1 WebSphere MQ的数据日志 91 7.1.1日志的概念 91 7.1.2日志控制文件 91 7.1.3日志类型 92 7.1.4计算日志的大小 92 7.2 使用数据日志进行恢复 93 7.2.1从掉电或通信故障中恢复 94 7.2.2恢复受损对象 94 7.3保护 WebSphere MQ 日志文件 96 7.4备份和恢复 WebSphere MQ 96 7.4.1备份 WebSphere MQ 96 7.4.2恢复 WebSphere MQ 96 7.5恢复方案 97 7.5.1磁盘故障 97 7.5.2受损的队列管理器对象 98 7.5.3受损的单个对象 98 7.5.4自动媒体恢复故障 98 7.6使用 dmpmqlog 命令转储日志 98 7.7本章小结 101 7.8本章练习 102 第八章 WebSphere MQ 问题诊断 102 目标 102 8.1错误日志 102 8.1.1日志文件 103 8.1.2忽略WebSphere MQ for Windows的错误代码 104 8.1.3操作信息 104 8.2死信队列 104 8.3配置文件和问题确定 104 8.4跟踪 104 8.4.1WebSphere MQ Windows的跟踪 104 8.4.2WebSphere MQ AIX的跟踪 106 8.5首次故障支持技术(FFST) 109 8.5.1FFST: WebSphere MQ Windows 版 109 8.5.2FFST: WebSphere MQ UNIX 系统版 110 8.6本章小结 112 8.7本章练习 112 第三部分 Websphere MQ 应用开发 113 第九章 设计Websphere MQ应用程序 113 目标 113 9.1介绍应用设计 113 9.1.1 规划设计 113 9.1.2 WebSphere MQ 对象 113 9.1.3 设计消息 114 9.1.4 WebSphere MQ 技术 114 9.1.5应用编程 115 9.1.6 测试应用程序 116 9.2 WebSphere MQ消息 116 9.2.1消息描述符 116 9.2.2消息种类 116 9.2.3消息控制信息和消息数据的格式 117 9.2.4消息优先级 117 9.2.5消息组 118 9.2.6消息持久性 118 9.2.7检索消息 119 9.2.8交付失败的消息 119 9.3本章小结 119 9.4本章练习 119 第十章 用MQI编程 119 目标 119 10.1概述 119 10.2 平台和语言 120 10.3 库和存根模块程序 121 10.4 体系结构模型 122 10.5 用MQI编程 124 10.5.1 基本API概念 125 10.5.2 连接到队列管理器 126 10.5.3 打开WebSphere MQ对象 127 10.5.4 关闭WebSphere MQ对象 130 10.5.5 断开与队列管理器的连接 130 10.5.6 将消息放入队列 131 10.5.7 从队列获取消息 133 10.5.8 从队列浏览消息 135 10.5.9查询对象属性 136 10.5.10设置对象属性 138 10.5.11 MQI中的事务处理 139 10.5.12 MQI中的消息分组 140 10.6本章小结 142 10.7本章练习 142 第十一章 用 C++ API编程 143 目标 143 11.1 概述 143 11.2 平台和语言 144 11.3库 144 11.4体系结构模型 145 11.5用C++ API编程 146 11.5.1连接到队列管理器 147 11.5.2打开WebSphere MQ对象 147 11.5.3 关闭WebSphere MQ对象 148 11.5.4 断开与队列管理器的连接 148 11.5.5 消息放入队列 148 11.5.6从队列获取消息 150 11.5.7浏览队列上的消息 153 11.5.8查询并设置对象属性 153 11.5.9事务处理管理 155 11.5.10消息分组 155 11.6本章小结 157 11.7本章练习 157 第十二章 用Java编程 158 目标 158 12.1 概述 158 12.2 平台 158 12.2.1 获得软件包 158 12.2.2 WebSphere MQ for Java的运行环境 159 12.3 使用WebSphere MQ for Java 161 12.3.1客户机连接模式 161 12.3.2绑定模式 162 12.3.3 类库 162 12.4用WebSphere MQ Java API开展工作 164 12.4.1 设置连接 164 12.4.2 打开队列 165 12.4.3 处理WebSphere MQ消息 166 12.5应用程序开发 167 12.5.1简单的消息发送器应用程序 168 12.5.2简单的消息接收应用程序 170 12.5.3请求/回复 172 12.5.4回复应用程序 175 12.5.5消息分组 177 12.5.6简单的组接收应用程序 180 12.6本章小结 183 12.7本章练习 183 第十三章 用ActiveX编程 183 目标 183 13.1 概述 183 13.2 平台和语言 184 13.3 库 185 13.4 架构模型 185 13.5 用WebSphere MQ automatin classes for ActiveX编程 186 13.5.1 连接到队列管理器 186 13.5.2 打开WebSphere MQ对象 187 13.5.3 基本操作 189 13.5.4 关闭对象 191 13.5.5 关闭连接 192 13.6 事务处理管理 192 13.7 分组 195 13.8 本章小结 195 13.9本章练习 195 第十四章 用AMI编程 195 目标 195 14.1 概述 196 14.2 平台和语言 198 14.3 库和包 199 14.4 体系结构模型 201 14.5 用AMI编程 202 14.5.1 连接到队列管理器 202 14.5.2 打开WebSphere MQ对象 204 14.5.3 基本操作 208 14.5.4 删除会话并关闭连接 212 14.6 AMI和MQI的比较 213 14.7 事务处理管理 213 14.8 分组 215 14.9本章小结 215 14.10本章练习 215 附录一 WebSphere MQ的缺省系统对象 215
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值