websphere MQ调优浅谈

    随着企业发展应用系统越来越多,各种系统之间就会出现功能调用,通过传统webservice固然方便省事,可也带来两个问题,1、系统强关联(一个接口挂掉可能导致另外一个系统无法使用 ) 2、多个系统功能穿插错综复杂,系统灵活性下降,此种情况下消息中件应运而生。 Websphere MQ是IBM的一款优秀消息中间件。
     本文不介绍MQ的具体使用方法和概念对象,网上有不少文档资料,推荐大家看《精通 WebSphere MQ(完整版)》,在此主要介绍几种我日常运维使用到的一些调优方法。  
   官方给出的调优策略,大家可以参考:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0712_dunn/0712_dunn.html
   

一、 与API 调用有关的MQ性能考虑因素

  这里,我们在讨论各个API对性能的影响时,均以C语言提供的API为例,其他开发语言与此类似。

  1 关于MQCONN/MQDISC的使用

  在MQ13个函数中,MQCONN/MQDISC是最耗CPU的两个函数,其次是MQOPENMQCLOSE这两个函数,因此要尽量避免必要地重复使用这几个函数。比如,当您需要从队列中读取多条消息时,正确的编程方法应该如下:

MQCONN

MQOPEN

MQGET

.

.

.

MQGET

MQCLOSE

MQDISC

  即:连接/断开队列管理器一次,打开/关闭队列一次,读取消息多次。而不应该反复建立与队列管理器的连接和反复进行队列打开/关闭操作。

  2 MQCONNX的使用

  通常,我们使用MQCONN这个函数建立与队列管理器的连接,除此之外,MQ支持trusted application binding,即fastpath binding,用MQCONNX来实现。当从性能方面考虑时,我们可以使用MQCONNX来提高性能。

  在使用MQCONNX时,我们可以设置MQCNO(connect option)来指定连接方式。缺省情况下,该选项为MQCNO_STANDARD_BINDING,如果设置为MQCNO_FASTPATH_BINDING,即表明采用fastpath binding方式连接队列管理器,这种应用称为trusted application。所谓的trusted application,是指该应用程序和本地队列管理器代理组成同一个进程,从而提高性能。利用fastpath binding不仅能够提高连接队列管理器的性能,同时也能够提高mqopen,mqclose的性能。

  3 消息大小对mqput, mqget函数耗时的影响

  尽量减小消息的大小,小消息的读取效率要高。对于mqget, mqput这两个函数而言,8k以下的消息的耗时差别不大,8k128k的消息的耗时随着消息大小的增加而增加。大于128k的消息耗时较大,因为当与队列相关的内存满了的时候,会有硬盘交换。

  同时要注意,从传输效率而言,如果在广域网上进行消息传输,消息太小会影响传输效率,因为对于每一消息,MQ都会有一个消息头,它会占有一定的字节数,如果把消息拆分太小,每个消息的传输头都会占据一定的开销。

  4 对一个空队列的open,close 操作比非空队列的同样操作耗时要多。

  第一次open队列耗时比接下来的open 耗时要多,对本地队列和远程队列的open,close耗时基本相同。

  5 使用MQCMIT对消息进行批处理

  当处理一批消息时,可以采用MQCMIT函数,将若干消息作为一个完整的交易来处理,消息将作为一个batch统一提交,而不是一个个地分别提交,因此,可以提高性能。尤其对于永久性的消息效果更加明显。

  6 使用Distribution List 方式来把相同的消息发往不同的目的地

  大家知道,MQ适用于不同类型的应用。不仅可以实现"点对点"的通讯,还通过DistributionList支持"多点广播"应用,即能够将消息发送到多个目标站点。可以使用一个MQ函数调用将单一消息发送到多个目标站点,并确保为每一站点可靠地提供信息,减少了函数调用的个数。同时,MQ不仅提供了多点广播的功能,而且还拥有智能消息分发功能,在将一条消息发送到同一系统上的多个用户或队列时,MQ可以将消息的一个复制版本和该系统上接收者的名单发送到目标系统。目标系统在本地复制这些消息,并将它们发送到DistributionList上的队列,从而减少了网络的传输量。

   7 当向队列管理器仅发送一条消息时,使用MQPUT1函数。

  在MQ13个函数中,MQPUT1实现了这样一种功能,即它合并了MQOPEN, MQPUT, MQCLOSE三个函数的功能,在打开队列并且只希望发送一条消息时,它的CPU消耗比上述三个函数相加要少。

8 match correlation ID的方法取消息比不匹配性能要差。

  二、 与队列属性有关的MQ性能考虑因素

  1 消息的永久性和非永久性

  大家知道,MQ的消息分为永久性消息和非永久性消息两种,永久性消息是保存在硬盘存储介质上的,需要纪录日志的;相反,非永久性消息是存储在内存中的,不需要硬盘读写,因此使用非永久性消息的性能比永久性消息的性能要高很多,具体而言,最大可以提高近十倍。要注意的是,只有永久性消息的可靠性是可以保证的,即在发生故障,如当系统重启或队列管理器重启时,可以保证不丢失。因此,应根据您的业务需求和网络状况来确定消息的属性。

  2 调整队列的相关参数设置:

  对于队列而言,除了可以通过MQSC"define queue"命令设置它的属性之外,有另外两个参数直接影响队列的性能,而这两个参数只有通过qm.ini文件进行设定。它们分别是:队列文件的大小(Maximum amount of bytes in a queue)和为每一个队列的非永久性消息保留的内存大小(Maximum amount of memory reserved for non-persistent messages),它们的缺省值分别对应于DefaultQFileSizeDefaultQBufferSize这两个参数。

  队列的定义存储在硬盘上,并且在队列被打开时申请资源。我们可以设置队列DafaultQFileSizeDafaultQBufferSize两个参数来确定队列的定义参数,这些参数在队列管理器重启时生效,下面分别给予描述。

  1) 队列文件大小

  缺省情况下,队列文件在硬盘上的大小最大是320M, 它会被预先分配195kb内存,这195kb内存会在队列打开时获得。队列文件的大小最大值可以达到1G bytes, 这可以通过设置DefaultQFileSize参数来设定,当其设为1G时,队列打开时会申请350kb内存。

  2)非永久性消息对应的内存大小

  缺省情况下,对每个队列而言,用来存储non-persistent消息的共享内存是64kb, 我们可以通过修改DafaultQBufferSize参数将其增加至1MB。在打开队列的时候,要申请如此数量的内存,因此它直接影响到队列管理器需要的内存资源的大小,包括实存和虚存。推荐值是把该值设制成64kb的两倍,即128kb。永久性消息是存在硬盘上的,而非永久性消息是存在内存中的,当设定的buffer不够时,要进行磁盘交换,速度就会减慢,把它扩大后,若不进行硬盘交换,读取队列的速度就会快。当然,对该参数的修改也取决于系统实际物理内存的大小。

  修改这两个参数的方法是更改队列管理器配置文件qm.ini的相关参数,具体方法举例如下:

  在qm.ini文件中增加如下一节: TuningParameters:

  DefaultQBufferSize=128000

  DefaultQFileSize =1000000000

  3 队列的深度和队列上的消息的长度的设置也会影响性能。

  对每一个队列而言,都会被分配一个设定的buffer size,当磁盘I/O很高时,说明队列的buffer size满了,从而产生了硬盘交换。每个消息的大小乘以队列的深度决定了队列上消息占内存的大小,可以增加队列的个数或者增加队列的buffer size来提高性能。

  4 设置多个队列提高并行处理能力

  例如在总部,可以针对每一个分支机构设置一个队列,采用多个应用程序读取这些队列;对于同一个队列,也可以采用多个进程/线程同时进行读取操作。

  三、与日志有关的MQ性能考虑因素:

  1 MQlog queue files 放在不同的文件系统上。即将/var/mqm/log, /var/mqm文件系统分开。

  在安装MQ的时候,我们经常推荐大家创建两个文件系统,即/var/mqm/log/var/mqm,为了提高MQ的性能,我们建议把这两个文件系统放在不同的物理磁盘上,以提高磁盘I/O的效率。这是由于,在记录数据日志时,MQ会同时更新位于/var/mqm下的队列文件以及位于/var/mqm/log下的数据日志,因此建议把它们放在不同的物理盘上。

  2 扩大MQ的日志文件大小和个数

  在qm.ini配置文件中,有一小节是专门控制MQ的系统日志的,如下所示:

Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
LogFilePages=1024
LogType=CIRCULAR
LogBufferPages=17
LogPath=/var/mqm/log/QM1

  其中,LogPrimaryFilesLogSecondaryFiles指定了日志文件的个数,LogFilePages指定了每个日志文件的大小,LogBufferPages指定了日志缓冲区的大小,这些参数都可以影响MQ的性能。

MQ常用命令:

win下使用 dspmq.exe

uninx/linux 下 
#su - mqm
#dspmq

创建队列管理器 
crtmqm –q QMgrName 
-q是指创建缺省的队列管理器 


删除队列管理器 
dltmqm QmgrName 


启动队列管理器 
strmqm QmgrName 
如果是启动默认的队列管理器,可以不带其名字 


停止队列管理器 
endmqm QmgrName 受控停止 


endmqm –i QmgrName 立即停止 


endmqm –p QmgrName 强制停止 


显示队列管理器 
dspmq –m QmgrName 


运行MQ命令 
runmqsc QmgrName 
如果是默认队列管理器,可以不带其名字 


您现在已经创建了将消息从发送队列管理器 QM_ORANGE 发送到接收队列管理器 QM_APPLE 上的队列 Q1 所需的全部 WebSphere MQ 对象。下一个任务是发送测试消息。在发送机器(主管队列管理器 QM_ORANGE 的机器)上执行此任务。 
使用 amqsput 样本程序来将消息放入您创建的队列。 
在 Windows 上,缺省情况下样本程序随 WebSphere MQ 服务器或客户机一起安装。在 Linux 上,需要安装样本程序 RPM。 
打开命令提示符,然后按照以下步骤操作: 
启动 amqsput 样本程序,如下所示: 
在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsput Q1 
在 Windows 上,输入命令:amqsput Q1 
此时会显示以下消息: 
样本 amqsput0 启动 
目标队列为 Q1 
在一行或多行上输入某些消息文本,然后按 Enter 键两次。此时会显示以下消息: 
样本 amqsput0 结束 
您在接收机器(主管队列管理器 QM_APPLE 的机器)上执行此任务。使用 amqsget 样本程序来从队列中取回消息。 
打开命令提示符,然后按照以下步骤操作: 
启动 amqsget 样本程序,如下所示: 
在 Linux 上,切换到 /opt/mqm/samp/bin 目录,然后输入命令:./amqsget Q1 
在 Windows 上,输入命令:amqsget Q1 
此时会启动该样本程序,并显示您的消息以及此队列上的任何其它消息。在短暂停留后,样本程序结束,并再次显示命令提示符。 


往队列中放消息 
amqsput QName QmgrName 
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 


从队列中取出消息 
amqsget QName QmgrName 
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字 


启动通道 
runmqchl –c ChlName –m QmgrName 


启动侦听 
runmqlsr –t TYPE –p PORT –m QMgrName 


停止侦听 
endmqlsr -m QmgrName 


下面是在MQ环境中可以执行的MQ命令(即在runmqsc环境下可以敲的命令) 


定义持久信队列 
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE 


设定队列管理器的持久信队列 
ALTER QMGR DEADQ(QNAME) 


定义本地队列 
DEFINE QL(QNAME) REPLACE 


定义别名队列 
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME) 


远程队列定义 
DEFINE QREMOTE(QRNAME) + 
RNAME(AAA) RQMNAME(QMGRNAME) + 
XMITQ(QTNAME) 


定义模型队列 
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN) 


定义本地传输队列 
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) + 
INITQ(SYSTEM.CHANNEL.INITQ)+ 
PROCESS(PROCESSNAME) REPLACE 


创建进程定义 
DEFINE PROCESS(PRONAME) + 
DESCR(‘STRING’)+ 
APPLTYPE(WINDOWSNT)+ 
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’) 
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等 


创建发送方通道 
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+ 
CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE 
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。 


创建接收方通道 
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE 


创建服务器连接通道 
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE 


显示队列的所有属性 
DISPLAY QUEUE(QNAME) [ALL] 


显示队列的所选属性 
DISPLAY QUEUE(QNAME) DESCR GET PUT 
DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH 


显示队列管理器的所有属性 
DISPLAY QMGR [ALL] 


显示进程定义 
DISPLAY PROCESS(PRONAME) 


更改属性 
ALTER QMGR DESCR(‘NEW DESCRIPTION’) 
ALTER QLOCAL(QNAME) PUT(DISABLED) 
ALTER QALIAS(QNAME) TARGQ(TARGQNAME) 


删除队列 
DELETE QLOCAL(QNAME) 
DELETE QREMOTE(QRNAME) 


清除队列中的所有消息 
CLEAR QLOCAL(QNAME) 




以下是一些高级配置的命令:


amqmcert                  配置SSL证书


amqmdain                配置windows上的MQ服务


crtmqcvx                    转换数据


dmpmqaut                转储对象权限管理


dmpmqlog                转储日志管理


dspmq                         显示队列管理器


dspmqaut                  显示打开对象的权限


dmpmqcap               显示处理程序容量和处理程序数


dspmqcsv                 显示命令服务器状态


dspmqfls                   显示文件名


dspmqtrc                   跟踪MQ输出(HP-UNIX LINUX Solaris)


dspmqrtn                   显示事务的详细信息


endmqcsv                 停止队列管理器上的命令服务器


strmqcsv                    启动队列管理器上的命令服务器


endmqtrc                   停止跟踪


rcdmqimg                  向日志写对象的映像


rcmqobj                      根据日志中的映像重新创建一个对象


rsvmqtrn                     提交或逆序恢复事务


做MQ迁移的一个很好用的工具:

生产环境的QM由于某种需求,要更换服务器,又要保证在很短的时间内切换完成,那么怎么将原有定义的mq资源导出来,并形成ddl脚本呢?IBM提供了这么一个简单有效的导出工具(里面又各种平台的导出脚本),可以在ibm官方网站上搜索ms03,将它下载下来使用;注意要启动MQ的commandserver
a),解压:uncompress ms03_unix.tar.Z


                      tar -xvf ms03.tar


         b),修改权限:进入到ms03目录,执行:chmod u+x saveqmgr.linux  chown -Rf mqm:mqm ms03


   c),导出数据(需要用mqm组用户):./saveqmgr.linux -m QM_860000 -f test.txt
 其实saveqmgr.linux --help会得到更多的帮助,其中一个参数为:


    --remoteQmgr | -r rqmgr : is the name of the remote qmgr (XMITQ name)


    表示可以备份远程的队列管理器的名称,不过要在XMITQ里取得到。


    --resetChannels | -R [flags] : create RESET CHANNEL commands


    flags can be any combination of the follow to create RESET for that channel type:


    s (SENDER) v (SERVER) r (RECEIVER) q (REQUESTER) c (CLUSSDR) d (CLUSRCVR)


    the default is to create RESET commands for all the above channel types


    可以重置通道,等等


   d)恢复:先创建一个队列:crtmqm -q QM_860000


                                             strmqm QM_860000


               runmqsc QM_860000 < test.txt


   okay,到此已经完全克隆了一份队列管理器,你可以放心使用了。通道可以runing。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29018063/viewspace-2059486/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29018063/viewspace-2059486/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录.................................................................................................................................2 内容提要........................................................................................................................ 13 前言............................................................................................................................... 13 从系统集成到系统整合............................................................................................ 13 消息驱动和消息触发............................................................................................... 15 记号约定................................................................................................................. 15 第 1 章 概念与原理........................................................................................................ 16 1.1 简介.......................................................................................................... 16 1.1.1 消息中间件........................................................................................ 16 1.1.2 WebSphere MQ................................................................................... 17 1.1.3 WebSphere MQ 产品.......................................................................... 17 1.2 概念与对象....................................................................................................... 19 1.2.1 消息 (Message) .................................................................................. 19 1.2.2 队列 (Queue) ..................................................................................... 20 1.2.3 队列管理器 (Queue Manager).............................................................. 23 1.2.4 通道 (Channel)................................................................................... 24 1.2.5 名称列表 (Name List)......................................................................... 26 1.2.6 分发列表 (Distribution List) ................................................................ 26 1.2.7 进程定义 (Process)............................................................................. 27 1.2.8 认证信息 (Auth Info).......................................................................... 27 1.2.9 客户端和服务器端 (Client & Server)................................................... 27 1.2.10 操作界面 (MQ Interface)..................................................................... 27 1.2.11 应用程序 (MQ Application)................................................................. 28 1.3 工作原理................................................................................................... 28 1.3.1 PUT 和 GET....................................................................................... 28 1.3.2 协同工作............................................................................................ 29 1.3.3 互连通信............................................................................................ 29 第 2 章 安装.................................................................................................................. 31 2.1 安装环境................................................................................................... 32 2.1.1 硬件................................................................................................... 32 2.1.2 操作系统............................................................................................ 32 2.1.3 通信协议............................................................................................ 33 2.2 安装介质................................................................................................... 33 2.2.1 正版................................................................................................... 33 2.2.2 试用版............................................................................................... 33 2.3 安装过程................................................................................................... 33 2.4 缺省配置................................................................................................... 36 2.4.1 准备 WebSphere MQ 向导................................................................... 36 2.4.2 远程管理向导..................................................................................... 37 2.4.3 缺省配置向导..................................................................................... 38 2.5 安装补丁................................................................................................... 40 2.6 其它平台................................................................................................... 40 2.6.1 AIX ................................................................................................... 40 2.6.2 HP-UX............................................................................................... 41 2.6.3 Solaris................................................................................................ 43 2.6.4 Linux ................................................................................................. 45 2.7 安装目录................................................................................................... 46 2.7.1 Windows............................................................................................ 47 2.7.2 AIX ................................................................................................... 47 2.8 安装文档................................................................................................... 48 第 3 章 控制与管理........................................................................................................ 48 3.1 MQ 控制命令............................................................................................ 49 3.1.1 MQ 队列管理器控制........................................................................... 49 3.1.2 MQ 命令服务器控制........................................................................... 51 3.1.3 MQ 监听器控制.................................................................................. 52 3.1.4 MQ 触发监控器控制........................................................................... 54 3.1.5 小结................................................................................................... 55 3.2 MQ 对象管理............................................................................................ 55 3.2.1 队列管理器管理................................................................................. 57 3.2.2 队列管理............................................................................................ 57 3.2.3 通道管理............................................................................................ 58 3.2.4 进程定义管理..................................................................................... 60 3.2.5 名称列表管理..................................................................................... 60 3.2.6 认证信息管理..................................................................................... 61 3.2.7 小结................................................................................................... 61 3.3 基本队列操作............................................................................................ 62 3.4 MQ 配置信息............................................................................................ 63 3.4.1 UNIX 配置文件.................................................................................. 63 3.4.2 Windows 注册表................................................................................. 64 3.4.3 Windows 中 MQ 运行环境配置............................................................ 65 3.4.4 Windows 中 MQ 队列管理器配置........................................................ 66 3.5 MQ 管理方式............................................................................................ 67 3.5.1 本地管理............................................................................................ 68 3.5.2 远程管理............................................................................................ 69 3.6 日志 (Log)................................................................................................ 72 3.6.1 队列管理器日志................................................................................. 72 3.6.2 检查点 (Checkpoint)........................................................................... 74 3.6.3 记录和复原 (Record & Recover).......................................................... 75 3.6.4 备份和恢复 (Backup & Restore).......................................................... 76 3.6.5 导出日志 (Dump Log)........................................................................ 77 第 4 章 通信与配置........................................................................................................ 77 4.1 消息路由................................................................................................... 77 4.4.1 消息路由过程..................................................................................... 78 4.4.2 缺省传输队列..................................................................................... 78 4.4.3 队列管理器别名................................................................................. 78 4.4.4 多级跳............................................................................................... 79 4.4.5 传输中的消息..................................................................................... 79 4.2 通道配置................................................................................................... 81 4.2.1 Sender (QM1) -- Receiver (QM2).......................................................... 81 4.2.2 Server (QM1) -- Receiver (QM2)........................................................... 82 4.2.3 Server (QM1) -- Requester (QM2)......................................................... 83 4.2.4 Sender (QM1) -- Requester (QM2)......................................................... 84 4.2.5 通道启动命令..................................................................................... 85 4.2.6 通道监控程序..................................................................................... 85 4.3 通道的属性............................................................................................... 86 4.3.1 通道会话............................................................................................ 87 4.3.2 通道协议............................................................................................ 89 4.4 通道的状态............................................................................................... 91 4.4.1 公共状态 (Common Status)................................................................. 91 4.4.2 当前状态 (Current-Only Status) ........................................................... 92 4.4.3 通道状态分析..................................................................................... 93 4.5 互连配置举例............................................................................................ 95 4.5.1 单向传送............................................................................................ 95 4.5.2 双向传送............................................................................................ 96 4.5.3 队列与队列管理器别名....................................................................... 97 4.5.4 三级跳 (Multi-hopping)....................................................................... 98 4.5.5 四级跳 (Multi-hopping)......................................................................100 第 5 章 应用设计..........................................................................................................102 5.1 架构设计..................................................................................................102 5.1.1 两点间通信.......................................................................................102 5.1.2 多点间通信.......................................................................................103 5.1.3 同步和异步.......................................................................................103 5.1.4 Client/Server ......................................................................................104 5.1.5 Internet 通信......................................................................................105 5.2 通信方式设计...........................................................................................106 5.2.1 进程间会话模式................................................................................106 5.2.2 系统间通信方式................................................................................107 5.3 并发设计..................................................................................................108 5.3.1 多读多写...........................................................................................108 5.3.2 共享与独占.......................................................................................108 5.3.3 对象绑定...........................................................................................109 5.3.4 队列管理器关闭................................................................................109 5.3.5 分发列表 (Distribution List) ...............................................................109 5.4 消息设计..................................................................................................110 5.4.1 消息大小 (Message Size) ...................................................................110 5.4.2 消息持久性 (Persistence) ...................................................................111 5.4.3 消息先级 (Priority) ........................................................................112 5.4.4 消息超时 (Expiry).............................................................................113 5.5 发送设计..................................................................................................113 5.5.1 消息标识...........................................................................................113 5.5.2 消息类型...........................................................................................114 5.5.3 消息格式...........................................................................................114 5.5.4 应答队列...........................................................................................115 5.5.5 动态队列...........................................................................................116 5.5.6 用户替换...........................................................................................118 5.6 读取设计..................................................................................................118 5.6.1 等待读取 (Wait & NoWait).................................................................118 5.6.2 信号中断 (Signal)..............................................................................118 5.6.3 截断消息 (Truncated Message) ...........................................................119 5.6.4 浏览消息 (Browse)............................................................................119 5.6.5 格式转换 (Convert) ...........................................................................120 5.6.6 消息匹配 (Match)..............................................................................120 5.6.7 回滚计数 (Backout Count).................................................................121 5.6.8 固化回滚计数 (Harden Backout).........................................................121 5.7 容错设计..................................................................................................122 5.7.1 出错处理...........................................................................................122 5.7.2 报告消息...........................................................................................122 5.7.3 死信消息...........................................................................................122 5.8 小结.........................................................................................................123 第 6 章 消息处理..........................................................................................................123 6.1 交易 (Transaction)....................................................................................123 6.1.1 概述..................................................................................................124 6.1.2 本地交易 (Local LUW)......................................................................124 6.1.3 全局交易 (Global LUW) ....................................................................125 6.2 触发 (Trigger)..........................................................................................131 6.2.1 原理..................................................................................................131 6.2.2 触发方式...........................................................................................132 6.2.3 配置..................................................................................................133 6.2.4 触发过程...........................................................................................134 6.2.5 并发..................................................................................................135 6.2.6 通道触发...........................................................................................135 6.2.7 触发 CICS 交易.................................................................................137 6.3 报告 (Report)...................................................................................................138 6.3.1 原理..................................................................................................138 6.3.2 选项..................................................................................................139 6.3.3 说明..................................................................................................140 6.4 分组与分段 (Group & Segment)................................................................141 6.4.1 消息组的发送....................................................................................142 6.4.2 消息组的接收....................................................................................143 6.5 消息上下文 (Message Context)..................................................................144 6.5.1 消息上下文的内容.............................................................................145 6.5.2 消息上下文的编程.............................................................................146 6.6 死信处理 (DLQ Handler)..................................................................................147 6.6.1 死信消息...........................................................................................147 6.6.2 死信队列处理器................................................................................148 6.7 数据转换 (Data Convert)...........................................................................151 6.7.1 转换方式...........................................................................................154 6.7.2 数据转换表 (Convert Table)...............................................................157 第 7 章 广播通信..................................................................................................159 7.1 分发列表 (Distribution List) ......................................................................159 7.1.1 概念..................................................................................................159 7.1.2 配置举例...........................................................................................161 7.1.3 编程..................................................................................................162 7.2 发布和订阅 (Pub & Sub)...........................................................................168 7.2.1 概念..................................................................................................168 7.2.2 安装..................................................................................................169 7.2.3 Broker 控制命令................................................................................169 7.2.4 Broker 网络.......................................................................................171 7.2.5 编程设计...........................................................................................173 7.2.6 发布/订阅命令...................................................................................175 7.2.7 常见的问题.......................................................................................178 第 8 章 客户端.....................................................................................................179 8.1 配置.........................................................................................................179 8.1.1 Server 端配置....................................................................................180 8.1.2 Client 端配置.....................................................................................180 8.2 用户出口..................................................................................................185 8.2.1 用户出口路径....................................................................................186 8.2.2 排错..................................................................................................186 8.3 安全检查..................................................................................................186 8.4 触发 (Trigger)..........................................................................................188 8.5 跟踪 (Trace).............................................................................................188 8.5.1 Windows...........................................................................................189 8.5.2 AIX ..................................................................................................189 第 9 章 群集.........................................................................................................189 9.1 相关概念..................................................................................................190 9.1.1 配置库 (Repository)...........................................................................190 9.1.2 配置库队列管理器 (Repository Queue Manager)..................................190 9.1.3 群集通道 (Cluster Channel)................................................................191 9.1.4 群集队列 (Cluster Queue) ..................................................................191 9.1.5 群集传输队列 (Cluster transmission queue)..........................................191 9.2 群集管理..................................................................................................191 9.2.1 对象属性...........................................................................................191 9.2.2 管理命令...........................................................................................192 9.2.3 管理任务举例....................................................................................193 9.3 群集配置举例...........................................................................................194 9.3.1 例 1 ..................................................................................................194 9.3.2 例 2 ..................................................................................................196 9.3.3 例 3 ..................................................................................................198 9.3.4 例 4 ..................................................................................................201 9.3.5 例 5 ..................................................................................................203 9.3.6 例 6 ..................................................................................................205 9.4 多群集队列实例与共享队列组..................................................................208 9.5 群集负载用户出口 (Cluster Workload User Exit).........................................210 第 10 章 监控与性能.....................................................................................................210 10.1 事件 (Event) ..................................................................................................210 10.1.1 概念..................................................................................................210 10.1.2 队列管理器事件 (Queue Manager Event).............................................211 10.1.3 通道事件 (Channel Event)..................................................................214 10.1.4 性能事件 (Performance Event)............................................................215 10.1.5 配置事件 (Configuration Event)..........................................................218 10.1.6 事件消息...........................................................................................219 10.1.7 事件监控...........................................................................................219 10.1.9 实验一:Queue Depth........................................................................220 10.1.10 实验二:Queue Service Interval.........................................................221 10.2 性能设计 (Performance)..................................................................................222 10.2.1 队列管理器性能比较.........................................................................222 10.2.2 数据传递的性能比较.........................................................................230 10.2.3 性能化...........................................................................................232 10.2.4 小结..................................................................................................234 第 11 章 安全协议.........................................................................................................234 11.1 安全通信..................................................................................................235 11.1.1 数据加密...........................................................................................235 11.1.2 报文摘要...............................................................................................236 11.1.3 数字签名...........................................................................................236 11.1.4 SSL...................................................................................................237 11.2 数字证书..................................................................................................239 11.2.1 概念..................................................................................................239 11.2.2 格式..................................................................................................239 11.2.3 根签证书与自签证书.........................................................................241 11.3 WebSphere MQ 配置 SSL.........................................................................241 11.3.1 Server/Server 消息通道......................................................................241 11.3.2 Client/Server MQI 通道 ......................................................................243 11.3.3 SSL 相关的对象属性.........................................................................245 11.3.4 Client 端程序.....................................................................................246 11.3.5 证书部署...........................................................................................246 11.4 实例 1 根签证书......................................................................................247 11.4.1 准备证书...........................................................................................247 11.4.2 配置队列管理器................................................................................249 11.4.3 配置通道...........................................................................................251 11.5 实例 2 自签证书......................................................................................251 11.5.1 准备证书...........................................................................................251 11.5.2 配置队列管理器................................................................................254 11.5.3 配置通道...........................................................................................254 第 12 章 用户出口..................................................................................................255 12.1 概述.........................................................................................................255 12.2 Channel Exit .............................................................................................256 12.2.1 Channel Exit 函数 ..............................................................................258 12.2.2 Security Exit ......................................................................................259 12.2.3 Message Exit......................................................................................263 12.2.4 Send Exit...........................................................................................264 12.2.5 Receive Exit.......................................................................................267 12.2.6 Message Retry Exit .............................................................................268 12.2.7 Channel Auto-Definition Exit ...............................................................270 12.2.7 Transport-Retry Exit ...........................................................................271 12.3 Data Conversion Exit .................................................................................272 12.4 Cluster Workload Exit ................................................................................274 12.5 Pub/Sub Routing Exit.................................................................................276 12.6 MQ API Exit.............................................................................................277 12.6.1 设置..................................................................................................278 12.6.2 举例..................................................................................................279 12.6.3 编程设计...........................................................................................279 第 13 章 MQI 编程.......................................................................................................280 13.1 编程入门..................................................................................................280 13.1.1 数据类型...........................................................................................280 13.1.2 数据结构...........................................................................................280 13.1.3 程序流程...........................................................................................281 13.1.4 例程..................................................................................................283 13.2 头文件.....................................................................................................284 13.3 库文件.....................................................................................................284 13.4 编程参考..................................................................................................285 13.4.1 MQCONN.........................................................................................285 13.4.2 MQCONNX.......................................................................................285 13.4.3 MQDISC...........................................................................................285 13.4.4 MQOPEN..........................................................................................286 13.4.5 MQCLOSE........................................................................................286 13.4.6 MQPUT ............................................................................................287 13.4.7 MQPUT1...........................................................................................287 13.4.8 MQGET ............................................................................................287 13.4.9 MQINQ.............................................................................................288 13.4.10 MQSET.............................................................................................288 13.4.11 MQBEGIN ........................................................................................289 13.4.12 MQCMIT ..........................................................................................289 13.4.13 MQBACK.........................................................................................289 第 14 章 Java 编程........................................................................................................290 14.1 安装.........................................................................................................290 14.2 编程设计..................................................................................................291 14.2.1 例程..................................................................................................292 14.3 连接模式..................................................................................................292 14.4 用户出口..................................................................................................293 14.5 多线程.....................................................................................................294 14.6 连接池.....................................................................................................295 14.6.1 例 1:线程之间串行建立连接...........................................................296 14.6.2 例 2:线程之间并行建立连接...........................................................297 14.7 交易保护..................................................................................................298 14.7.1 本地交易 (Local LUW)......................................................................298 14.7.2 全局交易 (Global LUW) ....................................................................298 14.8 Trace........................................................................................................299 第 15 章 JMS 编程.......................................................................................................299 15.1 JMS 对象................................................................................................299 15.1.1 Context..............................................................................................301 15.1.2 ConnectionFactory..............................................................................301 15.1.3 Connection ........................................................................................302 15.1.4 Session..............................................................................................303 15.1.5 MessageConsumer..............................................................................303 15.1.6 MessageProducer................................................................................304 15.1.7 MessageListener .................................................................................305 15.1.8 Message ............................................................................................306 15.2 编程设计..................................................................................................308 15.2.1 Persistence.........................................................................................308 15.2.2 Priority..............................................................................................308 15.2.3 Expiry ...............................................................................................308 15.2.4 Transaction........................................................................................309 15.2.5 Acknowledgment................................................................................310 15.2.6 Message Seletor..................................................................................311 15.2.7 Temporary Destination ........................................................................312 15.2.8 Durable Subscriber .............................................................................312 15.3 MQ JMS 运行环境...................................................................................313 15.3.1 JMS Interface 与 MQ JMS Object.......................................................313 15.3.2 JNDI.................................................................................................313 15.3.3 Client................................................................................................317 15.3.4 CCSID & Encoding ............................................................................318 15.4 ASF.........................................................................................................319 第 16 章 ActiveX 编程..................................................................................................320 16.1 MQAX.....................................................................................................320 16.1.1 程序设计...........................................................................................320 16.1.2 编程参考...........................................................................................323 16.1.3 跟踪信息 (Trace)...............................................................................328 16.2 MQAI ......................................................................................................328 16.3 ADSI .......................................................................................................328 第 17 章 AMI 编程.......................................................................................................329 17.1 安装.........................................................................................................330 17.1.1 Windows...........................................................................................330 17.1.2 AIX ..................................................................................................330 17.2 概念与配置..............................................................................................330 17.2.1 概念..................................................................................................330 17.2.2 配置..................................................................................................331 17.3 C 编程.....................................................................................................332 17.3.1 Object Level......................................................................................332 17.3.2 High Level.........................................................................................338 17.4 Java 编程.................................................................................................343 第 18 章 PCF & AI 编程................................................................................................344 18.1 PCF 编程..................................................................................................344 18.1.1 消息流程...........................................................................................344 18.1.2 消息格式...........................................................................................345 18.1.3 格式举例...........................................................................................347 18.2 AI 编程....................................................................................................349 18.2.1 消息流程...........................................................................................349 18.2.2 包的组成...........................................................................................350 18.2.3 编程..................................................................................................351 附录 WebSphere MQ 进程一览表..................................................................................358 Windows 平台........................................................................................................358 UNIX 平台............................................................................................................358 进程树...................................................................................................................359 附录 WebSphere MQ 命令一览表..................................................................................359 队列管理器 (Queue Manager)..................................................................................359 crtmqm 创建队列管理器 (Create Queue Manager).........................................359 dltmqm 删除队列管理器 (Delete Queue Manager) .........................................360 strmqm 启动队列管理器 (Start Queue Manager)............................................360 endmqm 停止队列管理器 (End Queue Manager)............................................361 dspmq 显示队列管理器 (Display Queue Manager)........................................361 命令服务器 (Command Server)...............................................................................362 strmqcsv 启动命令服务器 (Start Command Server)........................................362 endmqcsv 停止命令服务器 (End Command Server)........................................362 dspmqcsv 显示命令服务器 (Display Command Server)...................................362 Listener (监听器) ....................................................................................................362 runmqlsr 运行监听器 (Run Listener)..............................................................362 endmqlsr 停止监听器 (End Listener)..............................................................363 触发监控器 (Trigger Monitor) .................................................................................363 runmqtmc 启动 Client 端触发监控器 (Run Trigger Monitor for Client)..............363 runmqtrm 启动 Server 端触发监控器 (Run Trigger Monitor for Server).............363 Trace......................................................................................................................364 strmqtrc 启动 Trace (Start Trace,Windows 平台)..........................................364 strmqtrc 启动 Trace (Start Trace,HP-UX,Solaris,Linux 平台) ....................364 endmqtrc 停止 Trace (End Trace,Windows 平台)..........................................365 endmqtrc 停止 Trace (End Trace,HP-UX,Solaris,Linux 平台).....................365 dspmqtrc 显示 Trace (Display Trace,HP-UX,Solaris,Linux 平台) ...............365 介质恢复 (Media Recover)......................................................................................365 rcdmqimg 记录对象映像 (Record Object Image).............................................365 rcrmqobj 重建对象 (Recreate Object).............................................................366 日志 (Log).............................................................................................................367 dmpmqlog 输出格式化日志..........................................................................367 容量单元 (Capacity)...............................................................................................367 dspmqcap 显示容量单元 (Display Capacity)..................................................367 setmqcap 设置容量单元 (Set Capacity).........................................................367 权限信息 (Authority)..............................................................................................368 dmpmqaut 输出权限信息 (Dump Authority) ...................................................368 dspmqaut 显示权限信息 (Display Authority) ..................................................368 setmqaut 设置权限信息 (Set Authority)..........................................................369 amqoamd 输出授权信息 (OAM Dump) .........................................................371 运行环境 (Environment).........................................................................................371 mqver 显示版本 (WebSphere MQ Version)...................................................371 setmqprd 设置生产环境 (Set Production).......................................................371 amqicsdn 安装补丁 (Install CSD) ..................................................................372 高可用性 (High-Avalability,Windows 平台)..........................................................372 hadltmqm 删除队列管理器 (HA Delete Queue Manager) .................................372 hamvmqm 移动队列管理器 (HA Move Queue Manager)..................................372 haregtyp 注册队列管理器 (HA Register Type)...............................................372 amqmsysn 检查模块版本信息 (System Check)...............................................373 高可用性 (High-Avalability,其它平台) ..................................................................373 疑问交易 (In-Doubt Transaction) .............................................................................373 dspmqtrn 显示疑问交易................................................................................373 rsvmqtrn 解决疑问交易.................................................................................373 消息 (Message) ......................................................................................................374 amqsput 往队列中放消息 (Server 程序).......................................................374 amqsputc 往队列中放消息 (Client 程序).......................................................374 amqsget 从队列中取消息 (Server 程序).......................................................374 amqsgetc 从队列中取消息 (Client 程序)......................................................374 工具 (Utility) .........................................................................................................375 runmqsc 脚本命令服务器 (Run MQSC)........................................................375 mqrc 原因码查询 (MQ Reason Code) ......................................................375 amqfirst MQ 第一步,仅 Window 平台........................................................376 amqapi API 试验程序,仅 Windows 平台....................................................376 amqpcard MQI 明信片程序,仅 Windows 平台..............................................376 amqmtbrn MQ Task Bar,仅 Windows 平台.....................................................376 amqmjpse 准备 MQ 向导,仅 Windows 平台.................................................377 amqmgse MQ 缺省配置................................................................................377 amqinfon MQ 信息中心文档 (MQ Info Center)...............................................377 crtmqcvx 创建数据转换程序框架 (Create Conversion)....................................377 runmqdlq 运行死信队列处理器 (Run Dead-Letter Queue Handler) ...................378 runmqchi 运行通道初始化程序 (Run Channel Initiator)...................................379 runmqchl 运行通道 (Run Channel) ................................................................379 dspmqfls 显示对象对应的文件名 (Display Files)...........................................379 setmqscp 设置服务连接点 (Set Service Connection Point, 仅 Windows 平台)...380 setmqcrl 设置无效论证列表 (Set Certificate Revocation List (CRL) LDAP Server Definitions, 仅 Windows 平台)..........................................................................380 amqmcert Client 证书配置工具 (Utility for Certification)..................................380 ffstsummary FFST 文件摘要 (FFST Summary)................................................381 mqaxlev 显示 Code Level ............................................................................382 amqrfdm 查询 MQ Cluster Repository.............................................................382 amquregn Registry 值列表工具......................................................................382 amqmdain MQ 服务控制命令,仅 Windows 平台..........................................383 amqmsrvn COM 服务器,仅 Windows 平台....................................................384 附录 MQSC 命令一览表...............................................................................................385 RUNMQSC ............................................................................................................385 执行脚本.........................................................................................................385 抑制回显.........................................................................................................385 检验脚本.........................................................................................................385 远程管理.........................................................................................................385 批处理............................................................................................................385 MQSC 命令............................................................................................................386 结构图............................................................................................................386 DEFINE ..........................................................................................................389 DELETE .........................................................................................................395 ALTER............................................................................................................397 DISPLAY........................................................................................................399 CLEAR ...........................................................................................................406 START ............................................................................................................407 STOP..............................................................................................................407 RESOLVE.......................................................................................................408 PING ..............................................................................................................408 RESET............................................................................................................408 REFRESH .......................................................................................................409 SUSPEND .......................................................................................................409 RESUME ........................................................................................................410 参考书目.......................................................................................................................410
IBM WebSphere MQ 是一个秀的消息中间件,它被广泛地应用于各种企业应用系统之 间的互连, 已经逐渐成为这方面的标准。本书从原理到实践全面系统地阐述了 IBM WebSphere MQ 产品的安装、配置、管理、设计、编程等各个方面,同时也介绍了产品的扩 展功能和一些高级使用技巧。本书从功能上重点介绍了日志管理、死信处理、客户端、群集、 交易、触发、报告、事件、分段与分组、分发列表、发布订阅、数据转换、用户出口、安全 套接字、性能等等。 全书覆盖了 WebSphere MQ 产品的所有相关知识,全文共分18 章。第1-2 章为基础部 分,介绍了WebSphere MQ 产品的原理和简单的安装过程。第3-4 章为管理部分,介绍产品 的控制、管理及配置。第5-12 章为设计部分,介绍了应用设计中可能用到的各种产品高级 功能和使用技巧。第13-18 章为编程部分,讲解了各种编程模式和方法。 对于 WebSphere MQ 的初学者和使用者,可以从本书的第一和第二部分入手,通过深入 的原理剖析和详细的管理操作,相信能够帮助这部分读者入门与提高。即使对与MQ 无关 的人员,也能够在通读本书后对这类软件的设计思路和工作原理有一定的了解和启发。第三 部分和第四部分是本书的精华,介绍了大量的高级功能与技巧,内含了作者多年的经验积累 和实例模型,对于WebSphere MQ 设计和编程人员会有相当的吸引力,可以作为有一定经验 者的高级读物,也是相关开发人员必不可少的参考书。 本书注重实践,附有大量例程,帮助读者在实践中加深理解,也为相关设计和开发人员 提供了丰富的参考样例。所有例程都在WebSphere MQ 5.3 环境下经过测试,供读者参考。 全书语言生动并附有很多插图,易于理解。在专业相关的文字叙述上力求简捷,在内容与过 程的安排上则力争翔实,使得读者能够容易地自己动手实践。相信能帮助读者的WebSphere MQ 水平有所提高,从入门到精通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值