SciRui 2013-03-14
配置和使用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的配置和基本功能使用。