您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > IBMMQSeries命令使用指南
IBMMQSeries使用指南随着计算机网络和分布式应用的不断发展,远程消息传递越来越成为应用系统中不可缺少的组成部分。商业消息中间件的出现保证了消息传输的可靠性,高效率和安全性,同时也减少了系统的开发周期。目前应用最多的消息中间件产品为IBMMQSeries。本文就针对MQ的基本操作与配置进行详细的阐述,希望对读者有所帮助。一.MQ基本操作MQ中有几个很重要的组件:队列管理器(QueueManager)、队列(Queue)和通道(Channel)。其基本的操作方法如下:创建队列管理器crtmqm–qQMgrName-q是指创建缺省的队列管理器删除队列管理器dltmqmQmgrName启动队列管理器strmqmQmgrName如果是启动默认的队列管理器,可以不带其名字停止队列管理器endmqmQmgrName受控停止endmqm–iQmgrName立即停止endmqm–pQmgrName强制停止显示队列管理器dspmq–mQmgrName运行MQSeries命令runmqscQmgrName如果是默认队列管理器,可以不带其名字往队列中放消息amqsputQNameQmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字从队列中取出消息amqsgetQNameQmgrName如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字启动通道runmqchl–cChlName–mQmgrName启动侦听runmqlsr–tTYPE–pPORT–mQMgrName停止侦听endmqlsr-mQmgrNameMQSeries命令定义死信队列DEFINEQLOCAL(QNAME)DEFPSIST(YES)REPLACE设定队列管理器的死信队列ALTERQMGRDEADQ(QNAME)定义本地队列DEFINEQL(QNAME)REPLACE定义别名队列DEFINEQALIAS(QALIASNAME)TARGQ(QNAME)远程队列定义DEFINEQREMOTE(QRNAME)+RNAME(AAA)RQMNAME(QMGRNAME)+XMITQ(QTNAME)定义模型队列DEFINEQMODEL(QNAME)DEFTYPE(TEMPDYN)定义本地传输队列DEFINEQLOCAL(QTNAME)USAGE(XMITQ)DEFPSIST(YES)+INITQ(SYSTEM.CHANNEL.INITQ)+PROCESS(PROCESSNAME)REPLACE创建进程定义DEFINEPROCESS(PRONAME)+DESCR(‘STRING’)+APPLTYPE(WINDOWSNT)+APPLICID(’runmqchl-cSDR_TEST-mQM_TEST’)其中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等创建发送方通道DEFINECHANNEL(SDRNAME)CHLTYPE(SDR)+CONNAME(‘100.100.100.215(1418)’)XMITQ(QTNAME)REPLACE其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。创建接收方通道DEFINECHANNEL(SDR_TEST)CHLTYPE(RCVR)REPLACE创建服务器连接通道DEFINECHANNEL(SVRCONNNAME)CHLTYPE(SVRCONN)REPLACE显示队列的所有属性DISPLAYQUEUE(QNAME)[ALL]显示队列的所选属性DISPLAYQUEUE(QNAME)DESCRGETPUTDISPLAYQUEUE(QNAME)MAXDEPTHCURDEPTH显示队列管理器的所有属性DISPLAYQMGR[ALL]显示进程定义DISPLAYPROCESS(PRONAME)更改属性ALTERQMGRDESCR(‘NEWDESCRIPTION’)ALTERQLOCAL(QNAME)PUT(DISABLED)ALTERQALIAS(QNAME)TARGQ(TARGQNAME)删除队列DELETEQLOCAL(QNAME)DELETEQREMOTE(QRNAME)清除队列中的所有消息CLEARQLOCAL(QNAME)二.配置一个能够通信的远程连接以上讲述了MQ的基本命令操作,但只知道这些是没有实际意义的。MQ的最终目的是实现远程通信,所以下面就以一个具体的例子来说明如何实现远程连接。这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。首先在NT端建一队列管理器crtmqm–qQM_NT启动队列管理器strmqmQM_NT运行MQ控制台命令runmqscQM_NT创建死信队列DEFINEQL(NT.DEADQ)DEFPSIST(YES)REPLACE更改队列管理器属性,设置其死信队列ALTERQMGRDEADQ(NT.DEADQ)创建进程定义DEFINEPROCESS(P_NT)+APPLTYPE(WINDOWSNT)+APPLICID(’runmqchl-cSDR_NT-mQM_NT’)创建本地传输队列DEFINEQL(QT_NT)USAGE(XMITQ)DEFPSIST(YES)+INITQ(SYSTEM.CHANNEL.INITQ)+PROCESS(P_NT)REPLACE创建远程队列定义,对应于UNIX机器上的本地队列Q_UNIX,传输队列为QT_NTDEFINEQREMOTE(QR_NT)+RNAME(Q_UNIX)RQMNAME(QM_UNIX)+XMITQ(QT_NT)创建发送方通道,其传输队列为QT_NT,远程主机地址为10.10.10.2,侦听端口为1414DEFINECHANNEL(SDR_NT)CHLTYPE(SDR)+CONNAME(‘10.10.10.2(1414)’)XMITQ(QT_NT)REPLACE创建服务器连接通道DEFINECHANNEL(S_NT)CHLTYPE(SVRCONN)REPLACE在UNIX端创建队列管理器crtmqm–qQM_UNIX启动队列管理器strmqmQM_UNIX添加侦听程序修改/etc/services文件,加入一行:MQSeries1414/tcp#MQSerieschannellistener修改/etc/inetd.conf文件,加入一行(启动侦听程序)MQSeriesstreamtcpnowaitmqm/usr/lpp/mqm/bin/amqcrstaamqcrsta–mQM_UNIX运行以下命令,以使修改起作用refresh–sinetd运行MQ控制台命令runmqscQM_UNIX创建死信队列DEFINEQL(UNIX.DEADQ)DEFPSIST(YES)REPLACE更改队列管理器属性,设置其死信队列ALTERQMGRDEADQ(UNIX.DEADQ)创建接收方通道,其名字必须与远程发送方相同DEFINECHANNEL(SDR_NT)CHLTYPE(RCVR)REPLACE创建本地队列DEFINEQL(Q_UNIX)DEFPSIST(YES)REPLACE创建服务器连接通道DEFINECHANNEL(S_UNIX)CHLTYPE(SVRCONN)REPLACE经过以上操作之后,远程连接的配置工作完成。接下来需要验证配置是否正确。在NT端启动发送方通道runmqchl–cSDR_NT–mQM_NT或startchl(SDR_NT)从NT端发送消息到UNIX端amqsputQR_NTQM_NT在UNIX端接收消息/usr/mqm/samp/bin/amqsgetQ_UNIXQM_UNIX若能收到消息,说明配置成功。另,在NT下一般情况下在建立队列管理器时会自动建立侦听器,启动队列管理器时则会自动启动侦听程序。当然也可以手动配置侦听程序。修改\winnt\system32\drivers\etc\services文件,在文件中加入一行:MQSeries1414/tcp#MQSerieschannellistener启动侦听程序runmqlsr–ttcp–p1414–mQM_NT以上说明了怎样建立简单的单向传输网络。消息从NT端传送到UNIX端。建立从UNIX端到NT端的远程连接和以上相仿,要建立双向的传输网络也是同样的道理。三.配置JNDI用JMS实现消息的发送和接收时,经常会用到JNDI。因为JNDI这种方式比较灵活,对于编程也比较简单。在安装了MQSeriesClientforJava之后,在\java\bin目录下找到JMSAdmin.config文件。该文件主要用来说明Context的存储方式及存储地址,对应于文件中的两个参数INITIAL_CONTEXT_FACTORY和PROVIDER_URL。典型的JMSAdmin.config文件内容如下:#INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactoryINITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory#INITIAL_CONTEXT_FACTORY=com.ibm.ejs.ns.jndi.CNInitialContextFactory##PROVIDER_URL=ldap://polaris/o=ibm,c=usPROVIDER_URL=file:/d:/temp#PROVIDER_URL=iiop://localhost/#SECURITY_AUTHENTICATION=noneINITIAL_CONTEXT_FACTORY表示JMSAdminTool使用的服务提供商。当前有三种受支持的值。com.sun.jndi.ldap.LdapCtxFactory用于LDAP,如果使用它就必须安装一个LDAP服务器。com.sun.jndi.fscontext.RefFSContextFactory用于文件系统上下文,它只需要使用者提供存放上下文的文件路径。com.ibm.ejs.ns.jndi.CNInitialContextFactory是专门为websphere提供的,它需要和websphere的CosNaming资源库一起使用。PROVIDER_URL表示会话初始上下文的URL,由JMSAdmintool实现的所有JNDI操作的根。它和INITIAL_CONTEXT_FACTORY一一对应。ldap://hostname/contextname用于LDAPfile:[drive:]/pathname用于文件系统上下文iiop://hostname[:port]/[?TargetContext=ctx]用于访问websphereCosNaming名称空间最后还有一个参数SECURITY_AUTHENTICATION,用于说明JNDI是否把安全性凭证传递给了您使用的服务供应商。只有当使用了LDAP服务供应商时,才使用此参数。此参数有三个值,none(匿名认证)、simple(简单认证)和CRAM-MD5认证机制。如果没有提供有效值,缺省值为none。确认配置文件之后,可以在\java\bin目录下启动JMSAdmin控制台。也可以在任何目录下用下面的命令来启动控制台:JMSAdmin–cfgMQ_JAVA_INSTALL_PATH\java\bin\JMSAdmin.config其中MQ_JAVA_INSTALL_PATH为MQSeriesClientforJava安装的根目录。若启动失败,则好好检查一下您的环境变量是否设置正确。根据我个人的经验,除了把com.ibm.mq.jar和com.ibm.mqjms.jar加入到环境变量外,还要把fscontext.jar和providerutil.jar加入到环境变量。进入JMSAdmin控制台后,您可以自由定义subcontext。对于子上下
本文标题:IBMMQSeries命令使用指南
链接地址:https://www.777doc.com/doc-2876675 .html