欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    MQ运维手册.doc

    • 资源ID:2690162       资源大小:96.50KB        全文页数:34页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MQ运维手册.doc

    MQ运维手册交通银行 张江数据中心 系统部11152010A 新增 M 修改 D 删除版本号日期修订人审批人AMD概 要 描 述V012010-11-15伍建焜A全文创建目 录一概念与对象611 消息 Message 612 队列 Queue 6com 本地队列713 队列管理器 Queue Manager 1014 通道 Channel 11com 通道类型 Channel Type 11com 消息通道协议 MCP 13com 消息通道代理 MCA 1315 名称列表 Name List 1316 分发列表 Distribution List 1417 进程定义 Process 1418 认证信息 Auth Info 1419 客户端和服务器端 Client Server 15110 操作界面 MQ Interface 15111 应用程序 MQ Application 15二工作原理1621 PUT和GET1622 协同工作1723 互连通信17com 消息通道 Message Channel 17com 消息路由 Message Routing 18com 消息传送19三控制与管理2031 MQ 控制命令20com MQ 队列管理器控制20com MQ 命令服务器控制22com MQ 监听器控制23com MQ触发监控器控制2432 MQ 对象管理25com 队列管理器管理26com 队列管理26com 通道管理27com 进程定义管理29com 名称列表管理29com 认证信息管理3033 基本队列操作3034 MQ 配置信息31com UNIX 配置文件3135 MQ 管理方式33com 本地管理33com 远程管理3336 日志 Log 36com 队列管理器日志36com 检查点 Checkpoint 38com 记录和复原 Record Recover 39com 备份和恢复 Backup Restore 40com 导出日志 Dump Log 41四通信与配置4241 消息路由42com 消息路由过程42com 缺省传输队列43com 队列管理器别名43com 多级跳43com 传输中的消息4342 通道配置45com Sender QM1 - Receiver QM2 46com Server QM1 - Receiver QM2 46com Server QM1 - Requester QM2 47com Sender QM1 - Requester QM2 48com 通道启动命令49com 通道监控程序4943 通道的属性50com 通道会话50com 通道协议5344通道的状态54com 公共状态 Common Status 54com 当前状态 Current-Only Status 55com 通道状态分析5645互连配置举例60com 单向传送61com 双向传送62com 队列与队列管理器别名63com 三级跳 Multi-hopping 64com 四级跳 Multi-hopping 65五群集6851相关概念68com 配置库 Repository 68com 配置库队列管理器 Repository Queue Manager 69com 群集通道 Cluster Channel 69com 群集队列 Cluster Queue 69com 群集传输队列 Cluster transmission queue 7052群集管理70com 对象属性70com 管理命令70com 管理任务举例7153群集配置举例72com 例172com 例274com 例376com 例479com 例581com 例683六广播通信8761 分发列表 Distribution List 87com 概念87com 配置举例88七客户端9071 配置90com Server 端配置91com Client 端配置9172 用户出口96com 用户出口路径96com 排错97一概念与对象 WebSphere MQ 本质上是一种消息中间件用于保证异构应用之间的消息传递应用程序通过MQ 接口进行互连通信可以不必关心网络上的通信细节从而将更多的注意力集中于应用本身MQ 在所有的平台上有统一的操作界面这使得应用程序可以很方便地移植到各种操作系统中 WebSphere MQ 运行环境中有较多的概念其中有一部分是可以作为实体进行的操作的称为MQ 对象每一个对象都有各自的属性不同的属性决定了对象的特性和工作方式消息队列队列管理器通道是MQ 中最重要的概念和对象11 消息 Message 消息是WebSphere MQ 中最小的概念本质上就是一段数据它能被一个或多个应用程序所理解是应用程序之间传递的信息载体消息可以大致分成两部分 应用数据体和消息数据头 消息数据头是对消息属性的描述这段信息往往被队列管理器用来确定对消息的处理消息数据头可以由应用程序或系统的消息服务程序共同产生它包含了消息在传送中的必要信息如目标队列管理器的名字目标队列的名字以及消息的其它一些属性 应用数据体是应用间传送的实质的数据消息它可以是字串数据结构甚至二进制数据包含的内容可以是文本文件声音图像等任何数据这些数据只对特定的应用具有特定的含义所以应用数据体的结构和内容由应用程序定义通信双方需要事先约定报文格式 消息可以分成持久 Persistent 消息和非持久 Non-Persistent 消息所谓持久的意思就是在WebSphere MQ 队列管理器重启动后消息是否仍然能保持12 队列 Queue 可以简单地把队列看成一个容器用于存放消息队列按其定义可分成本地队列远程队列定义别名队列定义模型队列定义如图11所示其中只有本地队列是真正意义上的队列实体可以存放消息远程队列定义和别名队列定义只是一个队列定义指向另一个队列实体远程队列定义指向的是其它队列管理器中的队列而别名队列指向的是本地队列管理器中的队列模型队列有一点特殊它本身只是一个队列定义描述了模型的属性但是当打开模型队列的时候队列管理器会以这个定义为模型创建一个本地队列被称为动态队列 一个队列管理器下辖很多个消息队列但每个队列却只能属于一个队列管理器队列在它所属的管理器中只能有一个唯一的名字不能与同一个管理器的其它队列重名当消息被添加到队列中它缺省将被加到最后与之相反删除消息缺省却是从头开始图11 队列的分类com 本地队列 本地队列按功能又可分成初始化队列传输队列目标队列和死信队列初始化队列用做消息触发功能传输队列只是暂存待传的消息在条件许可的情况下通过管道将消息传送其它的队列管理器目标队列是消息的目的地可以长期存放消息如果消息不能送达目标队列也不能再路由出去则被自动放入死信队列保存图12 各种队列在消息传送时的作用com1 普通队列能够真正长期存放消息的本地队列我们称之为普通队列一般说来应用程序只对其做简单的 MQGET 和MQPUT 以收发消息这也是系统中用得最多的消息队列通常在不致引起混淆的情况下我们也将普通本地队列简称为本地队列com2 传输队列要送往远地的消息将放入传输队列在适当的时候消息会被从传输队列中取出并送往远地最终放入远端的本地队列所以从本地系统的立场来看传输队列是用来暂时存放输出消息的传输队列本身是一个本地队列它与普通队列的差别是传输队列具有的属性USAGE XMITQ com3 初始化队列初始化队列是配合消息触发用的如果队列上配置有消息触发功能则需要指定另一个相关队列以存放触发消息这个队列就是初始化队列初始化队列本质上就是一个普通本地队列com4 目标队列在消息通信的时候消息最终的目的地称为目标队列如果消息是通过传输队列转发WebSphere MQ 会自动为消息体添加一个传输消息头其数据结构为MQXQH其中的RemoteQName 和RemoteQMgrName 两个域指明了目标队列和目标队列管理器如果消息被放入死信队列则WebSphere MQ 会自动为消息体添加一个死信消息头其数据结构为MQDLH其中DestQName 和DestQMgrName 两个域指明了原消息的目标队列和目标队列管理器com5 死信队列死信队列本质上是普通的本地队列由于队列管理器的DEADQ 属性指定的该队列为死信队列所以队列管理器认为无法投递的消息都被自动送去该队列由于无法投递的消息很像信件投递中的死信故而得名队列管理器在将消息放入死信队列的时候会自动为消息体添加一个死信消息头其数据结构为MQDLH其中Reason 域指明了消息无法投递的原因com6 应答队列由于消息在发送后需要有对方的回应这种回应可以是系统自动产生的报告消息也可以是对方应用生成的应答消息就应用而言这些回应消息的目标队列就是应答队列应答队列通常设置在消息头 MQMD 的ReplyToQ 域中它也总是与消息头中的另一个域ReplyToQMgr 一起使用com7 命令队列指的是WebSphere MQ 队列管理器中预定义的SYcomAND QUEUE任何MQSC命令都可以送往该队列并被队列管理器的命令服务器 Command Server 接收处理com8 别名队列别名队列只是一种队列定义它自身只是队列的逻辑名字并不是队列实体本身别名队列的TARGQ 属性指明了其代表的目标队列名称目标队列通常是本地队列其实别名队列只是提供了队列名称之间的映射关系可以将别名队列看作是指针指向其目标队列注意这里的目标队列自身又可以是一个别名队列指向下一个目标队列然而在对别名队列打开 MQOPEN 操作时只允许别名队列指向的目标队列是一个本地普通队列即一层映射关系如果存在上述的多层映射关系则报错MQRC_ALIAS_BASE_Q_TYPE_ERROR通过别名定义WebSphere MQ 也可以动态改变消息流向比如某程序在代码中指定消息写入队列A但是您希望在不变动代码的情况下将消息写入队列 B这时只要定义别名 B使之指向A即可再如某队列C是可读可写的本地队列管理员希望它对于一类程序只可读对另一类程序只可写这时可以对C定义两个别名D和ED只允许读E只允许写也就是说本地队列C的属性为GET ENABLED 且 PUT ENABLED 将D的属性设置为GET ENABLED 且PUT DISABLED E的属性为GET DISABLED 且PUT ENABLED 将D和E分别提供给上述两类程序使用这样可以完全避免应用程序的误操作com9 远程队列远程队列与别名队列类似也只是一个队列定义用来指定远端队列管理器中的队列使用了远程队列定义程序就不需要知道目标队列的位置 所在的队列管理器 远程队列定义包括目标队列管理器名和目标队列名而这种队列定义对于访问地的应用程序是透明的这种技术不但使应用程序只需要对一个简单的队列名操作而且可以在线地通过修改远程队列定义而动态改变路由com10 模型队列模型队列定义了一套本地队列的属性集合一旦打开模型队列队列管理器会按这些属性动态地创建出一个本地队列模型队列的DEFTYPE 属性可以取值PERMDYN 和TEMPDYN分别代表永久动态队列和临时动态队列 1 永久动态队列永久动态队列由模型队列动态创建并可以永久存在在调用MQOPEN 时创建以后就和普通的本地队列一样工作在调用MQCLOSE 时缺省情况下会保留消息和队列当然也可以通过设置关闭选项 Close Option 的来清除消息甚至删除永久动态队列 2 临时动态队列临时动态队列也是由模型队列动态创建但只在会话 Session 中临时存在在调用MQOPEN 时创建在同一个线程中MQCLOSE 时关闭并自动删除MQCLOSE 时无所谓关闭选项 Close Option 的取值13 队列管理器 Queue Manager 队列管理器构建了独立的WebSphere MQ的运行环境它是消息队列的管理者用来维护和管理消息队列一台机器上可以创建一个或多个队列管理器每个队列管理器有各自的名字通常情况下它不能与网络中的其它队列管理器重名如果我们把队列管理器比作是数据库那么队列就是其中的一张表消息就是表中的一条记录队列管理器是负责向应用程序提供消息服务的机构在WebSphere MQ中队列管理器集成了对象的定义配置管理调度以及提供各种服务的功能于一身WebSphere MQ的系统管理工具提供了对系统部件配置与管理的功能应用程序必须首先连接到队列管理器然后在队列管理器的控制下对各种对象进行操作WebSphere MQ 中的队列管理器可以含有很多个队列但一个队列只能属于一个队列管理器一个操作系统平台可以创建一个队列管理器也可以创建多个队列管理器队列管理器队列通道等等都是WebSphere MQ的对象所有的对象都有各自的属性有些属性必须在对象创建的时候指定有些可以在创建以后更改14 通道 Channel 通道是两个队列管理器之间的一种单向的点对点的通信连接消息在通道中只能单向流动如果需要双向交流可以建立一对通道一来一去站在队列管理器的角度这一对通道可以按消息的流向分成输入通道和输出通道通过配置对于放入本地传输队列中的消息队列管理器会自动将其通过输出通道发出送入对方的远程目标队列两个队列管理器之间可以有多条通道负责传输不同的内容这样设计往往是为了将不同优先级的消息错开运行于不同速率的网络连接上或者即便是所有通道都运行于相同的网络物理连接上也可以将不同大小的消息传送分开以免小数据传送被大文件所堵塞如果多条通道共享一条网络物理连接通道的速率之和受限于网络速度这样可以增加传送的并发度但并不能增加整体的传送速度在通道上可以配置不同的通信协议这样就使得编程接口与通信协议无关通道两端的配置必须匹配且名字相同否则无法连通队列管理器之间的通信是通过配置通道来实现的通道两侧的队列管理器对这个通道的相关参数应该能对应起来一个通道只能用一种通信协议但不同的通道可以有不同的通信协议可见通道是架设在通信协议之上的对象架设在不同通信协议上的通道在应用层看来都大同小异com 通道类型 Channel Type WebSphere MQ 用通道类型属性 CHLTYPE 约定了通信双方在连接握手协议中的主动方和被动方以及应用消息的流向可选以下这些类型SDR Sender 握手协议的主动方消息的发送方RCVR Receiver 握手协议的被动方消息的接收方SVR Server 在握手协议中可以是主动方也可以是被动方消息的发送方RQSTR Requester 在握手协议中可以是主动方也可以是被动方消息的接收方CLNTCONN Client Connection 在Client-Server连接时定义客户端连接定义表 Client Channel Definition Table 时使用握手协议的主动方消息的发送方SVRCONN Server Connection 在Client-Server连接时定义服务器端连接时使用握手协议的被动方消息的接收方CLUSSDR Cluster Sender 在群集中发送配置信息和应用消息握手协议的主动方消息的发送方CLUSRCVR Cluster Receiver在群集中接收配置信息和应用消息握手协议的被动方消息的接收方通信双方的通道类型配对并不是可以随意排列组合的共有六种如图13所示图中细线箭标表示握手协议中的主动连接粗线箭标表示应用消息流向消息在所有的通道上都是单向传送的SenderReceiver是所有连接中最简单最常用的一种Sender是通道主动方也是消息发送方RequesterServer也是常用的一种连接方式Requester是通道主动方但通道连接后它作为消息接收方Server是消息发送方ServerReceiver与SenderReceiver类似Server是消息的发送方也是连接的主动方与Sender 定义类似Server定义中必须指定CONNAME参数SenderRequester的连接过程稍微复杂一些Requester首先与Sender连接在通知对方连接参数后连接断开Sender 进行反向连接消息也是反向传送的这种反向连接的方式称为 Callback ConnectionSender ConnectionReceiver Connection 与SenderReceiver 方式相同用于ClientServer 之间的MQI 通道Cluster SenderClueter Receiver 与SenderReceiver 方式相同用于群集中队列管理器之间的连接由于SenderReceiverServerReceiver 的连接主动方和消息发送方相同所以可以在发送端设定通道触发 Channel Trigger 由于SenderReceiverServerReceiverRequesterServer的连接被动方事先不需要知道主动方的连接参数所以可以用于连接主动端是动态地址的应用场合由于SenderRequester 有反向建立连接的功能所以常常用于双向安全认证图13 通道类型的配对com 消息通道协议 MCP 消息通道协议是WebSphere MQ用来传递消息时使用的通信协议MCP Message Channel Protocol 可使用多种底层通信协议传递消息LU62 DECNet 消息通道协议使得消息的传送独立于通信协议应用程序通过统一的接口与MQ打交道而不再需要关心通信层使用的是TCPIP 还是SNA目前MCP 支持的通信协议有LU62DECNet 和TCPIPcom 消息通道代理 MCA 消息通道代理 MCAMessage Channel Agent 本质上是一个通信程序它用来在队列管理器之间传递消息通道可以以进程的方式工作即独立的MCA 进程也可以以线程的方式嵌入系统MCA 进程中工作对于前者根据不同的MCP发送端进程和接收端进程的MCA 名通常是不同的15 名称列表 Name List 名称列表是WebSphere MQ 的一种对象它实质上是多个其它WebSphere MQ 对象的名称集合其内容由多个字串组成中间用逗号隔开每个字串就是一个对象名称名称列表本身无法代表它所含的对象例如无法对名称列表进行MQPUT 或MQGET操作类似的操作应该由分发列表 Distribution List 完成定义名称列表只是定义了一个集合往往是为了方便应用访问多个对象比如应用程序动态地从名称列表中读出操作对象并依次进行操作如果操作的对象有所增减只需要修改名称列表即可名称列表使管理人员可以在不修改应用的前提下通过动态地增减名称列表中的内容来进行管理名称列表多用于群集 Cluster 环境中指定一个队列管理器同时属于多个群集的情况这时名称列表的内容就是多个群集的名称集合名称列表可以用于以下一些对象属性QMgrREPOSNLQMgrSSLCRLNLQueueCLUSNLChannelCLUSNLWebSphere MQ 中每个对象都有各自的属性它们中的大多数是可以创建后修改的这里我们采用对象属性的记号方式表示对象的属性例QueueCLUSNL 表示队列的CLUSNL 属性以下同16 分发列表 Distribution List 分发列表可以使WebSphere MQ 应用程序一次将一条消息同时发送到多个队列上这里的一次发送指调用一次MQPUT 或MQPUT1多个目标队列可以是本地队列也可以远程队列如果多个远程队列的目标队列管理器相同则在网络上只需要传送一次即可节省了网络开销当消息到达目标队列管理器后再自动分发到各个目标队列中当然这要求源队列管理器和目标队列管理器都支持分发列表功能分发列表的操作是可以在一个交易中完成的也就是说多个队列的发送是可以一起提交或回滚的17 进程定义 Process 进程定义对象用于WebSphere MQ 的触发机制中用来描述触发程序的对象这个程序可以是一个操作系统程序可以是一个MQ 应用也可以是一个CICS 交易在进程定义的属性中需要设定触发程序的路径名称参数等等信息在消息触发环境中一旦触发条件满足即可引起触发队列管理器在生成触发消息的时候会参考进程定义将定义中某些属性被抄入触发消息头 MQTM 结构 中形成触发消息该触发消息被触发监控器读走并处理监控器可以根据MQTM 触发消息头中的信息启动相应的进程18 认证信息 Auth Info 认证信息 Authentication Information 定义了SSL 认证所需要的证书吊销列表 CRLCertificate Revocation List 所在的LDAP 服务器同时定义了连入该LDAP 服务器所需的用户名和口令19 客户端和服务器端 Client Server WebSphere MQ 分成客户端和服务器端只有服务器端有对象的概念所以只有服务器端的应用程序可以对本地对象进行直接操作客户端通过MQI 通道与服务器端相连接客户端应用程序发出的所有操作指令都通过该通道传送到服务器在服务器端执行后结果返回客户端通常情况下客户端的应用程序代码与服务器端相同在程序编译时连接的库文件不同110 操作界面 MQ Interface 应用程序通过操作界面与 WebSphere MQ 打交道这里的操作界面就是消息队列接口 Message Queue InterfaceMQI MQI 实际上是一套编程接口负责处理应用程序向WebSphere MQ 提交的各种操作请求应用程序完全不需要关心 WebSphere MQ 的内部结构与具体实现如消息队列传输队列等等 当应用程序通过 MQI 送出一条消息到远程队列队列管理器会在它的消息数据头中加上路由信息消息被转入传输队列等待送出MQI 的操作非常简单直观如MQOPENMQCLOSEMQGETMQPUT 等等 由于MQ 的互连通信是通过存储转发机制完成的所以操作与传输是异步的这意味着应用程序通过操作界面将消息发送出去时消息首先存储在本地当通信畅通时再被转发应用程序可以继续处理自己的逻辑而不必等待消息传达对方111 应用程序 MQ Application 应用程序可以是商业的或用户自行开发的含有对 WebSphere MQ操作的程序MQI提供了支持的有平台的通用编程接口应用程序只要能够调用相应的库函数它就可以操作WebSphere MQ这里介绍了WebSphere MQ中的基本概念和对象其中最核心的部分是消息队列队列管理器和通道对于编程设计人员通常更关心消息和队列对于维护管理人员通常会更关心队列管理器和通道二工作原理 WebSphere MQ 的工作原理的核心就是存储转发在单个队列管理器的环境中队列可以用于存储应用间传递的消息从而使应用程序在各自环节上进行处理并通过队列形成环环相扣的处理流程在多个队列管理器的环境中消息可以跨平台进行流动从而使整个处理流程在分布式计算环境中完成21 PUT和GET WebSphere MQ的应用程序可以通过MQ界面 MQIMQ Interface 进行操作实际上MQI 提供了有限的API其中最本质的两个动作是PUT和GETPUT指应用程序放一条消息放入到队列中GET则相反应用程序将一条消息从队列中取出WebSphere MQ通过队列机制来完成消息排队和传递的工作从而使应用程序之间实现松耦合的联系如图21所示应用程序A 产生消息通过PUT调用放入队列中应用程序B将消息取出并进行相应的处理消息的报文格式及内容决定了应用程序B处理的具体工作这样就实现了应用程序A到B之间的单向消息传递如果需要双向传递消息则必须再类似地约定反向队列图21 应用通过队列传递消息 应用程序设计的时候必须约定双方的报文格式如果用通用格式 如XML 则需考虑由此带来的灵活性和信息冗余在两者之间平衡选择在运行环境中还需要考虑PUT和GET的频率与速度以免消息有在队列中堆积起来 WebSphere MQ提供的远程队列机制可以将目标队列设定到另外一个队列管理器中这样应用程序A和B就可以在两台机器上运行而不改动任何代码应用程序A仍然做着相同的PUT操作将消息放入队列中该消息会自动路由到另一个队列管理器中的队列中应用程序B从该队列中GET消息与原先一样地处理也就是说这种配置结构上的改变对应用程序是完全透明的WebSphere MQ 的这种特性使得其应用的扩展性极佳任何应用在设计之初并不需要考虑太多的性能及扩展性问题在需要时可以很方便地将应用中任何一部分拆到其它的机器上实现分布式计算图22 应用通过队列跨网络传递消息22 协同工作 通常说来一个应用系统会由多个应用模块组成一个处理流程也会由多个处理步骤组成它们之间可能是串行的关系也可能是并行的关系在WebSphere MQ应用设计中可以自然地将多个模块或多个步骤设计成不同的应用程序而它们之间的中间数据则通过消息的方式传递用队列暂存如图23所示这样一来应用系统会有以下好处 1 结构清晰容易并行开发和调试 2 扩展性极好能够很容易地布署到跨平台环境中 3 灵活性好一旦流程改变了可以较容易地进行修改图23 协同工作23 互连通信com 消息通道 Message Channel WebSphere MQ跨平台的互连通信是依靠队列管理器之间的消息通道实现的消息通道就是消息传递的管道架设在队列管理器之间消息从一头流入从另一头流出消息的内容和次序完全不变配置通道时需要注意通道在两个队列管理器中同名且类型要配对com 消息路由 Message Routing 首先拿现实生活中寄信做例子来类比WebSphere MQ中的一些基本概念从而理解WebSphere MQ的工作原理现实生活中家家户户都可能有一个通信地址对应着一个存放到达信件的信箱每一封寄出的信件总是先到本地邮局通过邮局之间的信件交换到达对方所在的邮局最后到达对方的信箱里中间的邮路越复杂时间就越长这里的邮局相当于WebSphere MQ中的队列管理器信箱相当于队列信件相当于消息每一封信件都有信封和信瓤两部分信封上面往往有收信人通信地址和发信人通信地址信瓤里是真正的内容 如图24所示 WebSphere MQ中的消息也一样它分成消息头和消息体两部分消息头是消息的属性集合含有目标队列管理器名和目标队列名WebSphere MQ就是利用这段消息来找到目标队列的消息体是消息的内容可以是任意的一段内存信息图24 信封和信瓤 WebSphere MQ依靠每条消息头上所含的路由信息将消息准确地送达目的地路由信息中的远程队列管理器名指的是远端系统的名字远程队列名指的是远端系统中的目标队列名一个完整的队列名应该包含两部分队列管理器名和队列名格式为queue_namequeue_manager_name两部分名字的长度上限都是48字节这两部分名字构成了消息路由的最基本的信息算法其实很简单如果队列管理器名未标明则缺省加上本地队列管理器的名字队列名会缺省地匹配本地普通队列而队列管理器名会缺省地匹配本地队列管理器名一般说来建议传输队列名与远程队列管理器同名消息传送过程如下 1 应用程序通过MQI发送消息 2 WebSphere MQ查看queue_manager_name是否是本地队列管理器 a 如果是的将消息放入本地的名为queue_name的消息队列中 b 如果不是将消息放入名为queue_manager_name的传输队列中 3 MCP会把传输队列中的消息送达远端 4 远端将消息放入远端系统中名为 queue_name 的消息队列中 5 远端的应用程序从远端的本地队列中取得消息 这种办法提供了简单的路由功能但有一个明显的缺点直接使用全名会要求应用程序了解软件的网络结构分布哪些队列在哪里这有悖于WebSphere MQ对应用程序隐藏网络细节的设计初衷所以在跨队列管理器的应用中通常使用别名队列和远程队列来指定对方队列的名字从而将队列的分布信息保留在配置中com 消息传送 在实现消息的跨队列管理器之间的传送时通常会在本地队列管理器上配置远程队列和传输队列在远端的队列管理器上配置本地队列并通过通道将两者连接起来如图25所示这里的远程队列只是一个定义并无队列实体也就是说远程队列不能存放消息应用程序一旦将消息通过MQPUT送出则立刻放入传输队列中传输队列暂时存放待由通道发送的消息一旦通道连通且条件允许系统通信程序MCA会立即将消息送出消息到达对方目标队列管理器后由对方的通信程序MCA接收下来并放入相应的目标队列这里的目标队列就是目标队列管理器上的本地队列整个过程的效果就好像应用程序直接将消息送入目标队列一样图25 消息传送过程远程队列的定义实际上就是指定的目标队列的位置及传输路径其中目标队列的位置通过设定目标队列名和目标队列管理器名来确定消息在路由过程中寻找该目标地址传输路径就是传输队列名消息会通过该传输队列送出不同的远程队列可以共用一个传输队列传输队列本质上是一个本地队列只是由系统通信进程MCA监护应用程序可以人为地通过MQPUT 放一条消息到传输队列上但如果该消息没有传输头 MQXQH 则不会被发送消息按以下方式处理1 如果队列管理器设置了缺省死信队列则消息放入该死信队列死信消息原因码为MQFB_XMIT_Q_MSG_ERROR2 如果队列管理器未设置缺省死信队列则对于非持久性消息消息被仍掉对于持久性消息消息会留在传输队列中无处可去这时有可能会堵住后继的消息造成通道无法发送消息在经过远程队列放入传输队列时会由队列管理器自动添加一个传输头 MQXQH 且传输头中的内容会根据远程队列定义自动填写如果说原先的消息是MQMD Body则放入传输队列的消息为MQMD MQXQH Body三控制与管理WebSphere MQ中的控制针对的是MQ部件通常使用命令方式完成管理针对的是WebSphere MQ对象可以用MQSC脚本命令或图形界面工具完成在对WebSphere MQ的维护中两者需要结合使用31 MQ 控制命令com MQ 队列管理器控制队列管理器是构建WebSphere MQ运行环境的基础用户需要首先创建并启动队列管理器才能进行以后的操作队列管理器的控制命令可以创建删除启动停止队列管理器也可以显示系统中所有的队列管理器及其当前运行状态 1创建队列管理器格式crtmqm 选项 QMgrName功能创建队列管理器说明QMgrName 指的是待建的队列管理器名crtmqm 显示命令语法可以列出所有选项常用的选项有-q-d DefXmitQ-u DeadQ等它们可以组合使用选项如果取-q表示创建缺省队列管理器一台机器最多只能有一个缺省队列管理器如果取-d表示指明队列管理器的缺省传输队列如果取-u表示指明队列管理器的死信队列创建时的选项指定了队列管理器的属性这些属性有些可以在创建后修改有些则不可以未用选项指明的的属性就使用缺省值创建命令可以不带选项 如 crtmqm QM 则所有属性皆使用缺省值举例crtmqm q QM 2删除队列管理器格式dltmqm -z QMgrName功能删除队列管理器说明该命令执行的前提是队列管理器的相关进程已经全部停止了该命令只有一个选项-z表示抑制命令执行时发出的信息举例dltmqm z QM 3启动队列管理器格式strmqm -z -c QMgrName功能strmqm 用来启动队列管理器也可以用来用缺省对象重建队列管理器说明如果在命令中没有选项则简单地启动队列管理器如果用 -z表示抑制命令执行时发出的信息c 选项比较特殊表示重置队列管理器命令的执行过程为先启动队列管理器再覆盖重建所有的缺省系统对象最后自动停止该队列管理器如果上一次队列管理器未能正常停止则启动后可能会回滚一些未完成的交易恢复一些消息和对象如果因为某些异常不能重启队列管理器可以在出错日志 errors 目录 中寻找原因举例strmqm QM 4停止队列管理器格式endmqm -z -c -w -i -p QMgrName功能endmqm 用来停止队列管理器说明通过不同的选项可以设置不同的停止方式比如选项取 -c表示受控 Controlled 方式停止即等到连接在该队列管理器上的所有应用全部主动断开连接后才停止队列管理器不过该命令是立即返回的显示命令已经提交如果选项取 w则同样是受控方式停止只是命令不是立即返回的在指定的时限 秒 内等待 Wait 命令执行完毕后或超时返回若选项取-i即立即 Immediate 停止即使其它连接在该队列管理器上的应用的所有后继MQ API 全部失败以督促它们退出命令在队列管理器停止后返回若选项取 p即强行 Preemptive 停止不会等待其它应用程序释放资源或断开连接而直接将队列管理器进程退出有可能会造成异常-z 选项表示抑制命令执行时发出的信息可以与其它选项组合使用举例endmqm QM5显示队列管理器格式dspmq -m QMgrName功能dspmq 用来显示本地的队列管理器的运行状态说明如果用 m 选项表示显示某个具体的队列管理器运行状态否则表示显示所有的队列管理器状态举例dspmqQMNAME QM STATUS正在运行QMNAME QM1 STATUS正常结束QMNAME QM2 STATUS正常结束com MQ 命令服务器控制WebSphere MQ命令服务器是队列管理器的一个组件用来对外来的命令消息进行解释和执行在远程管理和编程管理的应用中需要启动命令服务器一个队列管理器最多只有一个命令服务器缺省情况下在创建队列管理器时由系统一并创建1启动命令服务器格式strmqcsv QMgrName功能strmqcsv 用来启动命令服务器说明QMgrName指的是命令服务器所在的队列管理器缺省为系统缺省队列管理器命

    注意事项

    本文(MQ运维手册.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开