分享
 
 
 

介绍关于IBM MQSeries的使用指南

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分。商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时也减少了系统的开发周期。目前应用最多的消息中间件产品为IBM MQSeries。本文就针对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 QmgrName

MQSeries命令

定义死信队列

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)

二.配置一个能够通信的远程连接

以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。

首先在NT端建一队列治理器

crtmqm ?q QM_NT

启动队列治理器

strmqm QM_NT

运行MQ控制台命令

runmqsc QM_NT

创建死信队列

DEFINE QL(NT.DEADQ) DEFPSIST(YES) REPLACE

更改队列治理器属性,设置其死信队列

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) +

INITQ(SYSTEM.CHANNEL.INITQ)+

PROCESS(P_NT) REPLACE

创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NT

DEFINE QREMOTE(QR_NT)+

RNAME(Q_UNIX) RQMNAME(QM_UNIX)+

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

创建服务器连接通道

DEFINE CHANNEL(S_NT) CHLTYPE(SVRCONN) REPLACE

在UNIX端创建队列治理器

crtmqm ?q QM_UNIX

启动队列治理器

strmqm QM_UNIX

添加侦听程序

修改/etc/services文件,加入一行:

MQSeries 1414/tcp #MQSeries channel listener

修改/etc/inetd.conf文件,加入一行(启动侦听程序)

MQSeries stream tcp nowait mqm /usr/lpp/mqm/bin/amqcrsta amqcrsta ?m QM_UNIX

运行以下命令,以使修改起作用

refresh ?s inetd

运行MQ控制台命令

runmqsc QM_UNIX

创建死信队列

DEFINE QL(UNIX.DEADQ) DEFPSIST(YES) REPLACE

更改队列治理器属性,设置其死信队列

ALTER QMGR DEADQ(UNIX.DEADQ)

创建接收方通道,其名字必须与远程发送方相同

DEFINE CHANNEL(SDR_NT) CHLTYPE(RCVR) REPLACE

创建本地队列

DEFINE QL(Q_UNIX) DEFPSIST(YES) REPLACE

创建服务器连接通道

DEFINE CHANNEL(S_UNIX) CHLTYPE(SVRCONN) REPLACE

经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。

在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

若能收到消息,说明配置成功。

另,在NT下一般情况下在建立队列治理器时会自动建立侦听器,启动队列治理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。

修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:

MQSeries 1414/tcp #MQSeries channel listener

启动侦听程序

runmqlsr ?t tcp ?p 1414 ?m QM_NT

以上说明了怎样建立简单的单向传输网络。消息从NT端传送到UNIX端。建立从UNIX端到NT端的远程连接和以上相仿,要建立双向的传输网络也是同样的道理。

三.配置JNDI

用JMS实现消息的发送和接收时,经常会用到JNDI。因为JNDI这种方式比较灵活,对于编程也比较简单。

在安装了MQSeries Client for Java之后,在\java\bin目录下找到JMSAdmin.config文件。该文件主要用来说明Context的存储方式及存储地址,对应于文件中的两个参数INITIAL_CONTEXT_FACTORY和PROVIDER_URL。典型的JMSAdmin.config文件内容如下:

#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory

INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory

#INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory

#

#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用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。com.ibm.ejs.ns.jndi.CNInitialContextFactory是专门为websphere提供的,它需要和websphere的CosNaming资源库一起使用。

PROVIDER_URL表示会话初始上下文的URL,由JMSAdmin tool实现的所有JNDI操作的根。它和INITIAL_CONTEXT_FACTORY一一对应。

ldap://hostname/contextname 用于LDAP

file:[drive:]/path

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有