MQ基本操作
一句话总结mq的工作流程
一句话总结mq的工作流程
MQ(消息队列)是一种用于实现异步通信的技术,它的工作流程如下:
1. 生产者将消息发送到消息队列中,消息可以是任何形式的数据,如文本、图片、视频等。
2. 消息队列接收到消息后,将其存储在内部的存储空间中,等待消费者处理。
3. 消费者从消息队列中获取消息,可以根据需求选择同步或异步方式进行消费。
4. 消费者处理完消息后,可以选择确认消费成功或放弃消费,如果放弃消费,消息将重新进入队列等待下一次消费。
5. 如果消息队列的存储空间已满,新的消息将被拒绝存储,生产者需要等待空间释放后再发送消息。
6. 消息队列可以支持多个消费者同时消费消息,每个消费者可以独立处理消息,提高系统的并发性能。
7. 消息队列可以通过设置优先级、过期时间等方式对消息进行管理,以满足不同场景下的需求。
8. 消息队列可以实现消息的持久化,即使系统故障或重启,之前的消息也能够保留,确保消息的可靠性和稳定性。
9. 消息队列可以实现消息的广播和订阅,一个消息可以被多个消费者同时接收,实现信息的传递和共享。
10. 消息队列可以实现系统解耦,生产者和消费者之间不直接通信,
通过消息队列进行中转,降低系统的耦合度。
总结:MQ是一种实现异步通信的技术,生产者将消息发送到消息队列中,消费者从队列中获取消息进行处理,通过消息队列可以实现系统解耦、提高并发性能、保证消息的可靠性和稳定性,适用于各种场景下的消息传递和共享。
mq命令
QDEPTHHI(80) QDEPTHLO(20)
QDPMAXEV(ENABLED) QDPHIEV(DISABLED)
XMITQ(QT_NT)
创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414
DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+
CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
停止侦听
endmqlsr -m QmgrName
MQSeries命令
8.退出命令行使用 end 命令。
一.MQ基本操作
MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器
远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(QMGRNAME) +
XMITQ(QTNAME)
定义模型队列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定义本地传输队列
IBM MQ
MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。
其基本的操作方法如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字停止队列管理器endmqm QmgrName 受控停止endmqm –i QmgrName 立即停止endmqm –p QmgrName 强制停止显示队列管理器dspmq –m QmgrName运行MQSeries命令runmqsc QmgrName如果是默认队列管理器,可以不带其名字往队列中放消息amqsput QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息amqsget QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道runmqchl –c ChlName –m QmgrName启动侦听runmqlsr –t TYPE –p PORT –m QMgrName停止侦听endmqlsr -m QmgrNameMQSeries命令定义死信队列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。
MQ常用命令
QUEUE(QMB)
TYPE(QLOCAL)
ACCTQ(QMGR)
ALTDATE(2009-02-06)
ALTTIME(11.41.44)
BOQNAME( )
BOTHRESH(0) CLUSTER( )
CLUSNL( ) CLWLPRTY(0)
CLWLRANK(0)
CLWLUSEQ(QMGR)
CRDATE(2008-12-05)
1.查看所有队列管理器 dspmq
查看所有的通道
dis chl(name)/dis chl(*)/dis chl(*) all/dis channel(name)
查看通道状态
dis chs(name)/dis chs(*)/dis chs(*) all
查看队列
display queue(name)
查看队列管理器信息(包括 CCSID 等信息) dis qmgr
种方法。 需要注意的时,当 DEPTH 属性值为0的时候,实际上就形成了同步通信。另外,当采用 Depth 触发时,产生触发消息以后,队列将被修改为非触发方式,如果需要再次触发,需要重新设 置成允许触发。
一般而言,在实际应用中,如果通道设置成触发方式,触发类型往往设置成为 FIRST 和
DEPTH。
6.修改 ccsid
alter qmgr ccsid(“XXX”)
一、MQ 的启动与停止
用 root 用户启/停需要 root 用户包含在 mqm 组中。
1、MQ 的启动 strmqm QMgrName 如果启动默认队列管理器,strmqm 后可以忽略队列管理器名称。 在意外情况停止队列管理器后,启动可能会失败,此时可以检查上次停止后是否有 IPC 资 源未释放,若有请予以删除,删除方法参考下面的“C.清理所有残留在系统内部的信号灯和 共享内存”。
mq的工作流程
mq的工作流程MQ(Message Queue)是一种基于消息传递的异步通信机制,常用于分布式系统间的解耦和数据传输。
它的工作流程可以简单概括为:消息的发送、消息的存储、消息的传递和消息的消费。
下面将逐一介绍这些环节。
消息的发送是指生产者将消息发送到消息队列中。
生产者可以是任何需要向其他模块或系统发送消息的应用程序,它将消息封装成特定格式,并通过MQ提供的API接口将消息发送到指定的消息队列中。
消息可以是任何形式的数据,例如文本、图片、视频等。
消息的存储是指消息队列将接收到的消息暂时保存在其中,以便后续的传递和消费。
消息队列通常采用高效的数据结构来存储消息,如链表、堆栈或树等。
它可以根据自身的特点和需求选择合适的存储方式,以确保消息的可靠性和高效性。
消息的传递是指消息队列将存储的消息传递给消费者。
消费者可以是任何需要接收和处理消息的应用程序,它通过MQ提供的API接口从消息队列中获取消息,并对消息进行处理。
消息队列以先进先出的方式将消息传递给消费者,保证消息的顺序性和可靠性。
消息的消费是指消费者接收到消息后对消息进行处理的过程。
消费者根据消息的内容和格式进行相应的操作,如解析数据、存储数据、发送通知等。
消费者可以根据自身的需求设置消息的消费方式,如同步消费、异步消费或定时消费等。
消费者可以根据实际情况决定是否需要确认消息的消费结果,以确保消息的可靠性和完整性。
在整个工作流程中,MQ起到了消息传递和解耦的作用,提高了系统的可扩展性和稳定性。
它可以将消息的生产者和消费者解耦,使它们可以独立的演化和扩展,而不会对彼此产生影响。
同时,MQ还提供了消息的持久化和高可用性的功能,确保消息的可靠性和稳定性。
除了基本的工作流程外,MQ还可以通过一些高级特性来增强其功能和性能。
例如,可以设置消息的优先级、过期时间和重试机制,以提高消息的处理效率和可靠性。
还可以实现消息的广播和订阅机制,以满足不同场景下的需求。
MQ的工作流程简单清晰,通过消息的发送、存储、传递和消费,实现了不同模块或系统之间的异步通信和解耦。
mq操作命令
1. 启动命令行QMEMBFE是QM名字runmqsc QMEMBFE (进入MQ的命令行)显示队列DISPLAY QUEUE(*)显示通道DISPLAY CHANNEL(*)显示侦听器DISPLAY LISTENER(*)SDR发送方通道,RCVR接收方通道2. 创建MQMcrtmqm -lf 16384 -lp 10 -ls 10 QMEMBFE3. 启动MQMstrmqm QMEMBFE3.1删除MQMDltmqm QMEMBFEStart chl(通道名) 启动通道4. 运行脚本runmqsc QMEMBFE < mbfemq.sc5. 确定测试商业银行所对应接入点的通道状态是否为running#runmqsc QMEMBFEdis chs(5012900001.GW2900)dis chs(GW2900.5012900001)dis chstatus(ChannelName) 查看通道状态dis chs(5012900001.GW2900)1 : dis chs(5012900001.GW2900)AMQ8420: 通道状态未找到。
dis chs(GW2900.5012900001)2 : dis chs(GW2900.5012900001)AMQ8417: 显示通道状态细节。
CHANNEL(GW2900.5012900001) CHLTYPE(RCVR)CONNAME(172.26.190.4) CURRENTRQMNAME(QME2900) STATUS(RUNNING) SUBSTATE(RECEIVE) XMITQ( )172.26.190.4 14181. 创建队列管理器crtmqm -q QMA(-q表示QMA为默认队列管理器)2. 启动队列管理器strmqm QMA(对于默认队列管理器,则为strmqm )Q 3. 启动管理器平台runmqsc QMA4. 定义本地队列define qlocal(queueA)若用于队列管理器之间进行通信,这应为define qlocal(queue1) usage(xmitq)5. 定义远程队列define qremote(queue.remote) rname(.queue)rqmname(queueB)xmitq(queue1)(.queue为远程队列管理器queueB中的本地队列)6. 定义发送端通道define channel(queueA.queueB)chltype(sdr)conname(192.168.1.90(1414)) xmitq(queueA)trptype(tcp)7. 定义接受方通道define channel(queueA.queueB) chltype(rcvr) trptype(tcp)8. 更改侦听端端口号alter listener(system.default.listener.tcp)trptype(tcp)port(1415)9. 启动侦听start listener(system.default.listener.tcp)在命令行c:\runmqlsr10. 列出侦听状态display lsstatus(*)11. 测试,向队列中放入消息amqsput queue_name queue_manager_name从队列中取出消息amqsget queue_name queue_manager_name12. 在服务器方建立用于客户方链接的通道define channel(channel2) chltype(svrconn) trptype(tcp)mcauser()13. 在客户机方,使用MQSERVER定义客户机链接通道(如使用了ActiveDirectory服务支持,则可略过本步骤)SET MQSERVER=CHANNEL1/TCP/192.168.1.90(1414) //Windowsexport MQSERVER=’CHANNEL1/TCP/server-hostname(port)’//linux15. 测试,向队列中放入消息amqsputc queue_name queue_manager_name从队列中取出消息amqsgetc queue_name queue_manager_name16. 关闭队列管理器endmqm mqm_nameendmqm -i mqm_name17. 结束所有侦听进程endmqlsr -m mqm_name18. 查看WebSphere MQ版本号dspmqver19. 查看已有的MQ管理器dspmq20. 启动WebSphere MQ Explorerstrmqcfg21.查看通道的消息序列DIS CHS(CHANNEL_NAME) CURSEQNO;。
MQ教程
30
MQ对象: 消息如何在通道传输
(1) 应用程序将消息 放入传输队列
(4) 对于应用来说消 息可用了
(2) Sender MCA取出消息 然后发送到 partner MCA
(3) Receiver MCA 将消 息放入目标队列
31
MQ对象: 有保障传输
15
消息的长处
消息的长处:
我们可以集中精力去做应用本身的设计.
再也不用管有关环境方面的细节了.
应用变得可以移植、扩展了.
16
图解消息工作原理
程序通过放置消息到队列 来进行通信. 图中, A程序 将消息放入 Queue1, B程 序读取Queue1的消息.
Note: A 和 B 不必 位于同一台机器上!
40
如果要从集群的外部发送消息到集群,幵希望消息在集群的成员
间合理的分配,那么集群中作为不外部环境接口点的队列管理器
上就丌能存在任何共享队列的副本,否则所有消息将积压在接口 点队列管理器上,使集群的负载均衡功能英雄无用武乊地。
通常的解决方案是为集群配置至少一个特殊的队列管理器,通常
称为网关(Gateway)队列管理器,该队列管理器上没有任何共 享队列的副本,叧需配置不集群外部的通讯设置(通道、监听器
若队列是持久的, 消息也是持久的, 则MCA最终一定 会将消息传送到目标队列, 迚而被目标应用获取!
MCA是可恢复的(有状态的),而且是面向连接的
协议.
消息丌会从传输队列中删除,除非对方MCA确认消
息到达了目标队列
消息通道代理(message channel agents,MCA)
IBMMQ常用命令
IBMMQ常用命令IBM MQ是一款广泛应用于企业级应用程序开发和数据传输的消息队列软件。
该软件具有出色的可扩展性和稳定性,可满足不同规模和需求的企业应用场景。
为了更好地管理和操作IBM MQ,下面将介绍IBMMQ常用命令。
1. crtmqm命令crtmqm命令是创建IBM MQ队列管理器的命令。
例如,要创建一个名为QMGR1的队列管理器,我们可以使用以下命令:crtmqm QMGR12. strmqm命令strmqm命令是启动IBM MQ队列管理器的命令。
例如,要启动名为QMGR1的队列管理器,我们可以使用以下命令:strmqm QMGR13. endmqm命令endmqm命令是停止IBM MQ队列管理器的命令。
例如,要停止名为QMGR1的队列管理器,我们可以使用以下命令:endmqm QMGR14. runmqsc命令runmqsc命令是启动IBM MQ命令行管理工具的命令。
我们可以在命令行模式下使用该命令来执行各种MQ管理任务。
例如,要启动runmqsc,我们可以使用以下命令:runmqsc QMGR15. crtmqobj命令crtmqobj命令是创建IBM MQ队列和通道的命令。
例如,要创建一个名为MYQUEUE的本地队列,我们可以使用以下命令:crtmqobj QMGR1 QLOCAL(MYQUEUE)6. dltmqobj命令dltmqobj命令是删除IBM MQ队列和通道的命令。
例如,要删除名为MYQUEUE的本地队列,我们可以使用以下命令:dltmqobj QMGR1 QLOCAL(MYQUEUE)7. display命令display命令是显示IBM MQ队列管理器、队列和其他对象的信息的命令。
例如,要显示名为QMGR1的队列管理器的配置信息,我们可以使用以下命令:display qmgr QMGR18. Inquire命令Inquire命令是查询IBM MQ队列管理器、队列和其他对象的信息的命令。
MQ常用命令2
MQ常用命令21.最近在配置MQ,记下了一些常用的MQ命令,如下:2.创建队列管理器3.crtmqm–qQMgrName4.-q是指创建缺省的队列管理器5.删除队列管理器6.dltmqmQmgrName7.启动队列管理器8.trmqmQmgrName9.如果是启动默认的队列管理器,可以不带其名字10.停止队列管理器11.endmqmQmgrName受控停止12.endmqm–iQmgrName立即停止13.endmqm–pQmgrName强制停止14.显示队列管理器15.dpmq–mQmgrName16.运行MQ命令17.runmqcQmgrName18.如果是默认队列管理器,可以不带其名字19.往队列中放消息20.amqputQNameQmgrName21.如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字22.从队列中取出消息23.amqgetQNameQmgrName24.如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字25.启动通道26.runmqchl–cChlName–mQmgrName27.启动侦听28.runmqlr–tTYPE–pPORT–mQMgrName29.停止侦听30.endmqlr-mQmgrName31.下面是在MQ环境中可以执行的MQ命令(即在runmqc环境下可以敲的命令)32.定义持久信队列33.DEFINEQLOCAL(QNAME)DEFPSIST(YES)REPLACE34.设定队列管理器的持久信队列35.ALTERQMGRDEADQ(QNAME)36.定义本地队列37.DEFINEQL(QNAME)REPLACE38.定义别名队列39.DEFINEQALIAS(QALIASNAME)TARGQ(QNAME)40.远程队列定义41.DEFINEQREMOTE(QRNAME)+42.RNAME(AAA)RQMNAME(QMGRNAME)+43.某MITQ(QTNAME)44.定义模型队列45.DEFINEQMODEL(QNAME)DEFTYPE(TEMPDYN)46.定义本地传输队列47.DEFINEQLOCAL(QTNAME)USAGE(某MITQ)DEFPSIST(YES)+48.INITQ (SYSTEM.CHANNEL.INITQ)+49.PROCESS(PROCESSNAME)REPLACE50.创建进程定义51.DEFINEPROCESS(PRONAME)+52.DESCR(‘STRING’)+53.APPLTYPE(WINDOWSNT)+54.APPLICID(’runmqchl-cSDR_TEST-mQM_TEST’)55.其中APPLTYPE的值可以是:CICS、UNI某、WINDOWS、WINDOWSNT等56.创建发送方通道57.DEFINECHANNEL(SDRNAME)CHLTYPE(SDR)+58.CONNAME(‘100.100.100.215(1418)’)某MITQ(QTNAME)REPLACE59.其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
MQ-2000 操作手册
Medconn MQ-2000糖化分析仪操作手册上海康祥卫生器材有限公司Shanghai Kangxiang Medical Device Co.,Ltd.目录第一章简介 (4)1.1产品用途 (4)1.2工作原理 (4)1.3基本参数 (5)1.4性能指标 (5)1.5产品特征 (6)1.6工作条件 (6)1.7配套使用试剂 (6)第二章系统介绍 (7)2.1仪器外观 (7)2.2仪器正面 (7)2.2仪器背面 (9)第三章仪器安装 (10)3.1安装条件 (10)3.2拆箱安装 (10)3.3连接管道及安装试剂 (10)3.4安装泵管 (11)3.5安装层析柱 (12)3.6安装打印纸 (13)3.7连接条码阅读器和数据线 (13)3.8连接电源 (13)第四章用户界面 (14)4.1主界面 (14)4.2分析界面 (15)4.3查询界面 (17)4.4定标界面 (23)4.5质控界面 (25)4.6保养界面 (27)4.7诊断界面 (30)4.8设置界面 (31)4.9系统界面 (33)第五章仪器操作 (34)5.1总体信息 (34)5.2仪器主要操作 (34)第六章注意事项及样品要求 (37)6.1操作的注意事项 (37)6.2危险提示 (37)6.3样品要求 (38)6.4定标和质控要求 (38)第七章保养和维护 (39)7.1日保养 (39)7.2周保养 (39)7.3月保养 (39)7.4其他 (40)7.5故障判断 (40)第八章故障检修 (42)8.1总体故障检修 (42)8.2色谱峰故障检修 (43)附录 A 装箱清单 (44)附录 B 定义和缩写 (45)附录 C 符号说明 (46)第一章简介1.1 产品用途在我国,糖尿病发病率为2-3%,并以每年千分之一的速度增长。
目前发病率仅次于心脑血管疾病和肿瘤。
由于血液葡萄糖测定只代表患者采样时的血糖水平,并不能作为评价疾病控制程度的指标和疗效的观察指标。
MQ(消息队列)的使用场景以及常见的MQ
MQ(消息队列)的使用场景以及常见的MQ1.使用场景:(1)异步通信:在许多场景下,发送方不需要等待接收方立即处理请求,而是将请求发送到消息队列中,然后可以继续执行其他任务。
这种异步通信模式可以提高系统的吞吐量和并发性能。
(2)解耦:在分布式系统中,各个模块之间需要进行通信,如果直接使用同步的方式进行调用,当其中一个模块出现故障或者响应时间过长时,会影响整个系统的正常运行。
而通过引入消息队列,可以实现模块之间的解耦,增加系统的可靠性和稳定性。
(3)流量控制和削峰填谷:当系统面对突发流量或者高峰期时,如果直接将请求发送给后端处理,很容易导致系统崩溃或者响应时间过长。
通过将请求发送到消息队列中,可以控制后端的处理速度,避免系统超负荷运行。
(4)可靠性传输:在一些关键的业务场景下,需要确保消息的可靠传输,一旦消息发送失败,能够进行重试或者补偿。
MQ提供了消息持久化、消息确认等特性,可以确保消息的可靠性传输。
(5)日志收集:在分布式系统中,各个模块都会产生大量的日志数据,通过将日志数据发送到消息队列中,可以实现日志的集中处理和分析。
2.常见的MQ:(1) RabbitMQ:RabbitMQ使用AMQP(Advanced Message Queuing Protocol)协议,是一个功能丰富的开源消息队列系统。
它支持多种通信模式,具有灵活的路由功能、高可用性和可靠性,被广泛应用于各种分布式系统中。
(2) Kafka:Kafka是一个分布式的流平台,提供高吞吐量的消息传输,可以处理大量的实时数据。
它具有高可用性、持久化存储和良好的扩展性,主要用于构建实时流处理系统、日志聚合和数据流管道等场景。
(3) ActiveMQ:ActiveMQ是一个开源的、基于JMS(Java Message Service)规范的消息中间件。
它提供了丰富的特性,包括持久化、事务、消息过滤和集群等,适用于各种异步通信和解耦的场景。
(4) RocketMQ:RocketMQ是一个分布式的消息中间件系统,具有高可靠性、高吞吐量和严格的消息顺序保证。
MQ维护与操作
MQ维护与操作MQ维护与操作1.MQ 的⽇志清理MQSeries ⽤错误⽇志记录与MQSeries ⾃⾝运⾏,队列管理器以及通道有关的消息。
因此,错误⽇志对于MQSeries 错误诊断⾮常重要。
AIX 平台上的MQSeries错误⽇志:当队列管理器名称已知,并且队列管理器可⽤时,错误⽇志位于/var/mqm/qmgrs/qmname/errors ⽬录下,如:与MQ 通道有关的消息。
当队列管理器不可⽤时,错误⽇志位于/var/mqm/qmgrs/@SYSTEM/errors ⽬录下;当错误是事务⽇志MQ 的故障维护与Client 应⽤程序有关,错误⽇志位于:/var/mqm/errors ⽬录下。
系统管理员要定期观察错误⽇志,清楚产⽣错误的原因,并根据需要定期清理或备份错误⽇志。
MQSeries 有两种事务⽇志类型:环型⽇志和线型⽇志,所在⽬录为/var/mqm/log环型⽇志预先指定⽇志⽂件的个数,MQ 运⾏时事务⽇志循环使⽤这些⽂件。
环型⽇志的⽇志⽂件所占空间不会增长,也⽆法备份MQ 应⽤系统的映像。
本系统现设计为环型⽇志。
线型⽇志指MQSeries 在运⾏的过程中会随着⽇志记录的增加⽽产⽣新的⽇志⽂件,线型⽇志的可以保证事务运⾏中产⽣的⽇志有⾜够的空间(除⾮⽂件系统空间不⾜),还可以把MQ 应⽤系统的映像备份到⽇志中,在发⽣故障后完整地恢复,线型⽇志⽇志⽂件所占⽤的空间会不断增长,需要系统管理员定期⼿⼯删除过期的⽇志⽂件。
2.如何清除MQ 队列管理器遗留的共享内存和信号量下⾯列出的是⼀段⽤于清除MQSeries 上⼀次遗留的共享内存和信号量的⼩程序。
通常遇到的状况是当启动队列管理器时失败,返回消息AMQ8041,指明以前的进程依然在使⽤中。
解决⽅法:运⾏以下脚本或命令。
ipcs -m| grep mqm | awk '{print $2}'|xargs -i ipcrm -m {}ipcs -s| grep mqm | awk '{print $2}'|xargs -i ipcrm -s {}3.如何解决MQSeries 队列管理器⽆法启动报“AMQ5522”错误当启动MQSeries 队列管理器时,⽆法启动,报“AMQ5522”错误。
MQ操作手册
交通银行理财产品销售平台MQ操作手册文档修改历史1.MQ配置简介基本规则如下:1)队列管理器与GSP的一个QM建立双向通道,即建立一个发送通道,一个接收通道2)对于单纯的服务请求方,每个系统建立:n个远程队列用于发送报文到GSP,一个本地队列用于接收GSP返回的报文。
(n表示该请求方需要请求的服务个数),BDP系统作为服务请求方,请求核心,即建立一个远程队列,一个本地队列.3)对于单纯服务提供方,每个系统建立2m个队列:m个远程队列用于发送报文到GSP,m个本地队列用于接收GSP返回的报文。
(m表示服务方提供的服务数)BDP系统作为服务提供方,对外提供三个服务,即建立三个本地队列,三个远程队列依照上面规则,配置如下:1.一个队列管理器:MQBDP001。
2.一个传输队列:MQGSPGW1。
3.服务提供方三个本地队列LOCALQ.GSP.BOCOMFUNDACCOUNT.REQLOCALQ.GSP.BOCOMFUNDPRODUCT.REQLOCALQ.GSP.BOCOMFUNDRECONCILIATION.REQ。
4.服务提供方三个远程队列:REMOTEQ.GSP.BOCOMFUNDACCOUNT.RSPREMOTEQ.GSP.BOCOMFUNDPRODUCT.RSPREMOTEQ.GSP.BOCOMFUNDRECONCILIATION.RSP5.服务请求方一个本地队列LOCALQ.GSP.RSP6.服务请求方一个远程队列REMOTEQ.GSP.CBKADAPTER.REQ7.一个死信队列:MQBDP001.DEAD.QUEUE。
8.一个接收通道:MQGSPGW1. MQBDP001。
9.一个发送通道:MQBDP001.MQGSPGW1注:确认小型机的字库Zh_GB和GB18030是否安装。
export是否是LANG=Zh_CN(注意大小写,不是zh_CN)。
如果不是,请修改服务用户的.profile的LANG=Zh_CN。
mq操作
runmqsc
显示队列信息
dis ql(14_1)
显示队列状态
dis chs(*)
dis chs(DOWN00_14) -- 指定只显示节点14的信息
dis chs(UP51_00)
显示队列的内容
tjficb@mqm/usr/mqm/samp/bin>./amqsbcg 00_1 QM00
CRDATE(2009-03-12) CRTIME(11.40.34)
CURDEPTH(0) DEFBIND(OPEN)
DEis ql(00_14)
dis chs(DOWN00_14)
--重置通道
stop chl(UP51_00)
8 : stop chl(UP51_00)
AMQ8019: Stop WebSphere MQ channel accepted.
reset chl(UP51_00)
CHLTYPE(RCVR) STATUS(RUNNING)
RQMNAME(QM51)
---------------
## 看当前队列深度 CURDEPTH
13 : dis QUEUE(00_1);
AMQ8409: Display Queue details.
TRIGMPRI(0) TRIGTYPE(FIRST)
USAGE(NORMAL)
9 : reset chl(UP51_00)
AMQ8023: WebSphere MQ channel reset.
start chl(UP51_00)
10 : start chl(UP51_00)
AMQ8018: Start WebSphere MQ channel accepted.
IBMMQ简单配置教程
IBMMQ简单配置教程MQ连接SWIFT实施方案1.1 MQ版本信息IBM WebSphere MQ V 7.01.21.3 MQ软件环境Windows Server 20031.4 MQ服务器信息服务器地址:xxxxx用户名:mqm密码:******1.5 MQ注意事项1.不支持含有空格的主机名;2.远程队列中的远程队列名称和远程队列管理器必须与TOP端的本地队列及队列管理器一致;3.接收方通道名称必须与TOP端发送方通道名称一致,发送方通道名称必须与TOP端接收方通道名称一致。
1.6 MQ创建队列说明1.6.1 SWIFT端队列说明:1.6.2 TOP端队列说明:1.7 MQ安装步骤1.7.1 查看软件需求是否符合1.7.2 检查网络配置是否正常1.7.3 启动安装程序选择接受条款进入下一步,选择典型安装即可,点击下一步,开始安装:等待安装完成,出现如下界面,点击完成下一步,选择否,进入下一步,勾选启动资源管理器,点击完成,向导会自动打开资源管理器,出现下面的界面,安装完成。
1.8 验证安装1.8.1 创建队列管理器选中队列管理器文件夹,右键“新建”,选择“队列管理器”:弹出创建队列管理器对话框,输入队列管理器名称QM_SWIFT,进入下一步:确保启动类型为自动,勾选创建服务器连接通道,进入下一步:默认端口为1414,如果此端口已被占用,修改端口,我们使用1450,点击下一步:保持默认选项,点击完成。
队列管理器创建完毕,并自动启动:1.8.2 创建队列1.8.2.1 创建本地队列选中队列管理器下的队列文件夹,右键“新建”—“本地队列”:弹出新建本地队列窗口,输入本地队列名称SWIFT_RECEIVE_QUEUE,点击下一步:常规—缺省持久性一项选择“持久“:扩展—最大队列深度一项工具需要调整大小,其他保持默认,点击完成:创建本地队列完毕,队列列表显示如下:1.8.2.2 创建传输队列与创建本地队列一样,选中队列管理器下的队列文件夹,右键“新建”—“本地队列”,弹出对话框,输入传输队列名称TRANSFER_QUEUE,点击下一步:常规—使用情况一项改为“传输“,其他与创建本地队列一样,点击完成。
MQ基本操作
MQ基本操作⼀.MQ基本操作MQ中有⼏个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。
其基本的操作⽅法如下:创建队列管理器crtmqm –q QMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqm QmgrName启动队列管理器strmqm QmgrName如果是启动默认的队列管理器,可以不带其名字停⽌队列管理器endmqm QmgrName 受控停⽌endmqm –i QmgrName ⽴即停⽌endmqm –p QmgrName 强制停⽌显⽰队列管理器dspmq –m QmgrName运⾏MQSeries命令runmqsc QmgrName如果是默认队列管理器,可以不带其名字往队列中放消息amqsput QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息amqsget QName QmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道runmqchl –c ChlName –m QmgrName启动侦听runmqlsr –t TYPE –p PORT –m QMgrName停⽌侦听endmqlsr -m QmgrNameMQSeries命令定义死信队列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。
IBM_MQ常用命令
IBM_MQ常⽤命令1. 队列管理器1.1. 创建队列管理器命令:crtmqm⽰例:1.2. 启动队列管理器命令:strmqm停⽌队列管理器命令:endmqm -c|-w|-i|-p参数说明:-c 受控关闭(或停顿关闭)。
这是缺省值。
队列管理器停⽌,但仅当所有应⽤程序已断开连接后才停⽌。
当前正在处理的任何MQI 调⽤已完成。
⽴即将控制权返回给您,并且不通知您队列管理器是何时停⽌的。
对通过服务器连接通道连接的任何客户机应⽤程序的影响等效于以QUIESCE ⽅式发出的STOP CHANNEL 命令。
-w 等待关闭。
此类型的关闭等效于受控关闭(除了仅当队列管理器已停⽌后才将控制权返回给您之外)。
当执⾏关闭时,您将接收到消息:等待队列管理器qmName 结束。
对通过服务器连接通道连接的任何客户机应⽤程序的影响等效于以QUIESCE ⽅式发出的STOP CHANNEL 命令。
-i ⽴即关闭。
队列管理器在完成所有当前正在处理的MQI 调⽤后停⽌。
任何在该命令发出后发出的MQI 请求都将失败。
当队列管理器再次启动时,任何未完成的⼯作单元将回滚。
队列管理器结束后返回控制权。
对通过服务器连接通道连接的任何客户机应⽤程序的影响等效于以FORCE ⽅式发出的STOP CHANNEL 命令。
-p 抢先关闭。
仅在意外情况下使⽤此类型的关闭。
例如,当队列管理器在常规endmqm 命令下未停⽌。
队列管理器可以停⽌⽽不等待应⽤程序断开连接或MQI 调⽤完成。
这可能会产⽣WebSphere MQ 应⽤程序的不可预测的结果。
关闭⽅式设置为⽴即关闭。
如果队列管理器稍后未停⽌,关闭⽅式将升级,且终⽌所有剩余的的队列管理器进程。
对通过服务器连接通道连接的任何客户机应⽤程等效于以TERMINATE ⽅式发出的STOPCHANNEL 命令。
1.3. 删除队列管理器命令:dltmqm1.4. 显⽰队列管理器启动状态2. 管理本地MQ对象使⽤MQSC 命令执⾏本地管理任务使⽤MQSC命令执⾏定义或修改队列、通道等操作。
MQ
©2008 BOCO Inter-Telecom Co. All rights reserved.
MQ的基本概念
3) 队列 Queue • 队列是消息的安全存放地,队列存储消息直到它被应用程序处理。 • 队列分为很多种类型,其中包括:本地队列、远程队列、传输队列、模板队 列、动态队列、别名队列等。 • 一个本地队列是一个物理上位于本地队列管理器中的队列。 • 一个远程队列属于一个不与该应用程序直接相连的队列管理器。对这类 队列的访问包含有本地队列管理器和远程队列管理器的通信过程。这种通信 涉及到通道。 • 传输队列是临时存储目标为远程队列管理器的消息的队列。 •从队列检索消息 • 先进先出(FIFO)。 • 在消息描述符中定义的消息优先级。以 FIFO 为基础检索具有相同优先 级的消息。 • 特定消息的程序请求。
©2008 BOCO Inter-Telecom Co. All rights reserved.
MQ的基本概念
2) 消息 Message • 在MQ中,我们把应用程序交由MQ传输的数据定义为消息; • 消息有两部分组成: • 消息描述符(Message Discription或Message Header),描述消息的特征, 如:消息的优先级、生命周期、消息Id等; • 消息体(Message Body),即用户数据部分。 •消息类别: • 请求消息:请求消息需要应答。 • 回复消息:回复消息是对请求消息的回应。 • 报文消息:数据报消息是不需要回复的消息,报文消息只是一次单向的 信息传送。 • 报告消息:报告消息用于对一些系统故障的响应。 •最大消息长度为 100 MB,缺省最大消息长度是 4 MB。
©2008 BOCO Inter-Telecom Co. All rights reserved.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MQ中几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:
创建队列管理器
crtmqm –q QMgrName
-q是指创建缺省的队列管理器
删除队列管理器
dltmqm QmgrName
XMITQ(QT_NT)
创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414
DEFINE CHANNEL(SDR_NT) CHLTYPE(SDR)+
CONNAME(‘10.10.10.2(1414)’) XMITQ(QT_NT) REPLACE
在安装了MQSeries Client for Java之后,在\java\bin目录下找到JMSAdmin.config文件。该文件主要用来说明Context的存储方式及存储地址,对应于文件中的两个参数INITIAL_CONTEXT_FACTORY和PROVIDER_URL。典型的JMSAdmin.config文件内容如下:
其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
创建接收方通道
DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
创建服务器连接通道
DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
#
#PROVIDER_URL=ldap://polaris/o=ibm,c=us
PROVIDER_URL=file:/d:/temp
#PROVIDER_URL=iiop://localhost/
#
SECURITY_AUTHENTICATION=none
INITIAL_CONTEXT_FACTORY表示JMSAdmin Tool使用的服务提供商。当前种受支持的值。com.sun.jndi.ldap.LdapCtxFactory用于LDAP,如果使用它就必须安装一个LDAP服务器。com.sun.jndi.fscontext.RefFSContextFactory用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。InitialContextFactory是专门为websphere提供的,它需要和websphere的CosNaming资源库一起使用。
远程队列定义
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAME(QMGRNAME) +
XMITQ(QTNAME)
定义模型队列
DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定义本地传输队列
DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +
经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。
在NT端启动发送方通道
runmqchl –c SDR_NT –m QM_NT 或 start chl(SDR_NT)
从NT端发送消息到UNIX端
amqsput QR_NT QM_NT
在UNIX端接收消息
/usr/mqm/samp/bin/amqsget Q_UNIX QM_UNIX
PROVIDER_URL表示会话初始上下文的URL,由JMSAdmin tool实现的所JNDI操作的根。它和INITIAL_CONTEXT_FACTORY一一对应。
ldap://hostname/contextname 用于LDAP
file:[drive:]/pathname 用于文件系统上下文
创建接收方通道,其名字必须与远程发送方相同
DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE
创建本地队列
DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE
创建服务器连接通道
DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE
其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
创建发送方通道
DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+
CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE
创建服务器连接通道
DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE
在UNIX端创建队列管理器
crtmqm –q QM_UNIX
启动队列管理器
strmqm QM_UNIX
添加侦听程序
修改/etc/services文件,加入一行:
启动队列管理器
strmqm QmgrName
如果是启动默认的队列管理器,可以不带其名字
停止队列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 强制停止
显示队列管理器
dspmq –m QmgrName
ALTER QMGR DEADQ(NT.DEADQ)
创建进程定义
DEFINE PROCESS(P_NT)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_NT -m QM_NT’)
创建本地传输队列
DEFINE QL(QT_NT) USAGE(XMITQ) DEFPSIST(YES) +
#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
#INITIAL_CONTEXT_FACTORY=InitialContextFactory
删除队列
DELETE QLOCAL(QNAME)
DELETE QREMOTE(QRNAME)
清除队列中的所消息
CLEAR QLOCAL(QNAME)
二.配置一个能够通信的远程连接
以上讲述了MQ的基本命令操作,但只知道这些是没实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(PROCESSNAME) REPLACE
创建进程定义
DEFINE PROCESS(PRONAME) +
DESCR(‘STRING’)+
APPLTYPE(WINDOWSNT)+
APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’)
若能收到消息,说明配置成功。
另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。
修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:
MQSeries 1414/tcp #MQSeries channel listener
INITQ(SYSTEM.CHANNEL.INITQ)+
PROCESS(P_NT) REPLACE
பைடு நூலகம்创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT
DEFINE QREMOTE(QR_NT)+
RNAME(Q_UNIX) RQMNAME(QM_UNIX)+
MQSeries 1414/tcp #MQSeries channel listener
修改/etc/inetd.conf文件,加入一行(启动侦听程序)
MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta –m QM_UNIX
如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字
启动通道
runmqchl –c ChlName –m QmgrName
启动侦听
runmqlsr –t TYPE –p PORT –m QMgrName
停止侦听
endmqlsr -m QmgrName
MQSeries命令
运行以下命令,以使修改起作用
refresh –s inetd
运行MQ控制台命令
runmqsc QM_UNIX
创建死信队列
DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE
更改队列管理器属性,设置其死信队列
ALTER QMGR DEADQ(UNIX.DEADQ)
显示进程定义
DISPLAY PROCESS(PRONAME)
更改属性
ALTER QMGR DESCR(‘NEW DESCRIPTION’)
ALTER QLOCAL(QNAME) PUT(DISABLED)
ALTER QALIAS(QNAME) TARGQ(TARGQNAME)