配置和使用WebSphere MQ
A.设置环境变量 在shell中执行MQ的控制命令: ctrmqm strmqm 若识别这些命令,则说明PATH环境变量已配置好了; 若提示找不到命令,则说明需配置Linux环境变量,指定MQ的bin路径到PATH: 可选择修改系统的环境变量(/etc/profile文件,对全部用户可见), 或只修改用户mqadmin的环境变量(/var/mqm/.bash_profile,只对当前用户可见。 下面列出前者的修改方式: vi /etc/profile 切换到插入模式,在文件尾部加入以下内容: export PATH=${PATH}:/opt/mqm/bin:/opt/mqm/samp/bin export
CLASSPATH=${CLASSPATH}:/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/samp/wmqjava/samples 其中/opt/mqm为MQ的安装路径,若安装路径不是这个,替换之。 保存退出 :wq 重启系统后,shell中就可执行MQ控制命令了。 B.MQ服务器单机测试
任务:MQ服务器本地发送和收取消息 1.创建名为 QM_APPLE 的缺省队列管理器 shell命令: crtmqm -q QM_APPLE
2.启动此队列管理器 shell命令: strmqm QM_APPLE
3.使用 MQSC(MQ服务器控制台)创建本地队列 shell命令: runmqsc QM_APPLE //启动MQSC define qlocal (Q1) //定义本地队列 end //退出控制台
4.将测试消息放入本地队列 shell命令: amqsput Q1 QM_APPLE //调用MQ内置样本程序向Q1队列放入消息 此时屏幕显示: Sample AMQSPUT0 start target queue is Q1 输入消息文本(一行或多行),然后按 Enter 键两次。此时屏幕显示: Sample AMQSPUT0 end 现已创建了测试消息并将其放入本地队列。
5.从本地队列获取消息 shell命令: amqsget Q1 QM_APPLE //调用MQ内置样本程序向Q1队列放入消息 此时会屏幕显示: Sample AMQSGET0 start message <***> //×××为消息内容 现已成功获取消息。
C.两台MQ服务器消息通信测试 前提:假如有两台MQ服务器:A和B,服务器B的IP为192.168.222.132 A已建立队列管理器QM_APPLE和本地队列LQA; B已建立并启动队列管理器QM_ORANGE和本地队列LQB; 任务:实现服务器A向服务器B发送一条消息,服务器B接收并读取该条消息。 1.服务器A定义传输队列和远程队列 shell命令: runmqsc QM_APPLE //启动MQSC define qlocal (TQA) usage (xmitq) define qremote (RQA) rname (LQB) rqmname(QM_ORANGE) xmitq (TQA) //定义远程队列:RQA-远程队列名称,QM_ORANGE-远程队列管理器,LQB-远程队列管理器的本地队列,TQA-本地传输队列 end 2.服务器B定义接收方消息通道和侦听器 shell命令: runmqsc QM_ORANGE //启动MQSC define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP) //定义接收方消息通道 define listener (LSR.QM_ORANGE)TRPTYPE(TCP) PORT(1414) //定义侦听器,需保证TCP端口1414没被其他程序使用,否则使用其他端口 start listener (LSR.QM_ORANGE) //启动侦听器 end 3.服务器A创建发送方消息通道,并启动 shell命令: runmqsc QM_APPLE //启动MQSC define channel(QM_APPLE.QM_ORANGE) chltype(sdr) conname('192.168.222.132(1414)') xmitq(TQA) trptype(tcp) //定义发送方消息通道 start channel (QM_APPLE.QM_ORANGE) //启动发送方消息通道 end 4.服务器A放入测试消息 shell命令: amqsput RQA QM_APPLE //调用MQ内置样本程序向远程队列RQA放入消息 此时屏幕显示: Sample AMQSPUT0 start target queue is RQA 输入消息文本(一行或多行),然后按 Enter 键两次。 此时屏幕显示: Sample AMQSPUT0 end 已将测试消息放入远程队列。 5.服务器B接收并获取测试消息 shell命令: amqsget LQB QM_ORANGE //调用MQ内置样本程序向Q1队列放入消息 此时会屏幕显示: Sample AMQSGET0 start message <***> //×××为消息内容 已成功获取测试消息。 D.客户机-服务器通信测试
任务:客户机向服务器发送和收取消息。
1.服务器设置 (假设服务器已建立队列管理器QM_APPLE) shell命令: runmqsc QM_APPLE //启动MQSC define qlocal (LQA) //定义本地队列 define channel(CLIENT.QM_APPLE) chltype(SVRCONN) trptype(TCP) mcauser('mqadmin') //定义服务器连接通道,mqadmin为客户机映射到的服务器本地MQ用户 define listener (LSR.QM_APPLE)TRPTYPE(TCP) PORT(1414) //定义侦听器,需保证TCP端口1414没被其他程序使用,否则使用其他端口 start listener (LSR.QM_APPLE) //启动侦听器 end 服务端设置完毕。 2.客户机设置 (假设客户机为Linux系统,已安装MQ客户端) shell命令: vi $HOME/.bash_profile 设置环境变量PATH和MQSERVER,将下列文本添加至文件末尾: export PATH=${PATH}:/opt/mqm/bin:/opt/mqm/samp/bin export MQSERVER=CLIENT.QM_ORANGE/TCP/'hostname'; export MQSERVER 注销并重新登录以使更改生效。 3.客户机放入消息到服务器队列 shell命令: amqsputc LQA QM_APPLE //调用MQ内置样本程序,连接远程MQ服务器,并向服务器队列放入消息 具体过程省略。 4.客户机从服务器队列获取消息 shell命令: amqsgetc LQA QM_APPLE //调用MQ内置样本程序,连接远程MQ服务器,并从服务器队列获取消息 具体过程省略。
至此,完成WebSphere MQ的配置和基本功能使用。