配置和使用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控制命令了。
/opt/mqm/samp/bin 为MQ示例命令功能 是MQ的MQSeriesSamples rpm包中所带。
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) //TQA-本地传输队列 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_ORANGE.QM_APPLE) chltype(sdr) conname('192.168.222.132(1414)') xmitq(TQA) trptype(tcp) //定义发送方消息通道 start channel (QM_ORANGE.QM_APPLE) //启动发送方消息通道 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的配置和基本功能使用。
本文由傻鸟发布,不代表傻鸟立场,转载联系作者并注明出处:https://shaniao.net/jishu/127.html