mq命令.docx
- 文档编号:10291706
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:18
- 大小:18.99KB
mq命令.docx
《mq命令.docx》由会员分享,可在线阅读,更多相关《mq命令.docx(18页珍藏版)》请在冰豆网上搜索。
mq命令
MQ服务器端(windows)和客户端(aix)通信过程
(1)创建名为venus.queue.manager的默认队列管理器。
在DOS窗口命令提示符下,输入以下命令:
crtmqm-qvenus.queue.manager
(2)启动刚才创建的队列管理器。
在DOS窗口命令提示符下,输入以下命令:
strmqmvenus.queue.manager
(3)启动MQSC命令。
在DOS窗口命令提示符下,输入以下命令:
runmqscvenus.queue.manager
(4)新建名为orange.queue的本地队列。
输入以下命令:
defineqlocal(orange.queue)
注意:
MQSC中任何小写字母将自动转换成大写,除非用单引号将它们括起来。
这意味着如果使用名称Orange.Queue创建了队列,则记住在MQSC以外其他命令中都必须使用Orange.Queue。
(5)停止MQSC。
输入以下命令:
end
现在,我们已经定义了以下对象:
(1)名为venus.queue.manager的默认队列管理器。
(2)名为ORANGE.QUEUE的队列。
测试对象:
要测试队列管理器和队列,请使用样本程序amqsput(将消息放入队列)和amqsget(从队列获取消息),步骤如下:
(1)启动DOS窗口,进入到C:
\ProgramFiles\IBM\WebSphereMQ\bin目录下。
(2)将消息放入队列。
输入以下命令:
amqsputORANGE.QUEUE
显示以下消息:
Sampleamqsput0start
TargetqueueisORANGE.QUEUE
(3)输入一些字符数据,然后双击"Enter"键,则显示以下消息:
Sampleamqsput0end
现在消息已经被放在队列中了。
(4)要从队列中获取消息,输入以下命令:
amqsgetORANGE.QUEUE
在屏幕上将显示您刚才输入的字符数据消息。
暂停后,例子程序结束。
如果以上步骤都能完成,则完成了本地安装的验证。
注意:
如果在任何阶段中断整个安装过程,则应该从头开始重新运行安装。
2WebSphereMQ客户端的安装和配置
如果我们开发的基于MQ的应用与MQ服务器不在同一台机器上,那么就必须在MQ应用端安装MQ客户端。
下面我们以在SuseLinux10下安装WebSphereMQv6.0Client为例介绍MQ客户端在Linux下的安装和配置步骤。
(1)解压缩MQ客户端安装包:
C84CJML.WebSphereMQV6.0Linuxx86Client.tar.gz,命令如下:
tar-xvfzC84CJML.WebSphereMQV6.0Linuxx86Client.tar.gz
(2)创建WebSphereMQ必需的文件系统,命令如下:
mkdir/opt/mqm#forproductcode
mkdir/var/mqm#forworkingdata
创建完后效果如下:
图3创建WebSphereMQ必需的文件系统
(3)创造MQ用户和用户组,命令如下:
groupaddmqm
useradd-d/var/mqm-gmqm-Gmqmmqm
passwdmqm#changepasswordto"password"
如下图:
图4创造MQ用户和用户组
(4)为mqm用户组添加root组
cd/etc
vigroup
修改mqm:
!
:
1000:
mqm?
mqm:
!
:
1000:
mqm,root
如下图:
图5为mqm用户组添加root组
(5)调整系统参数(视需要而定)
修改最大共享内存,命令如下:
cat/proc/sys/kernel/shmmax
echo268435456>/proc/sys/kernel/shmmax
修改最大文件句柄,命令如下:
cat/proc/sys/fs/file-max
echo32768>/proc/sys/fs/file-max
如下图所示:
图6调整系统参数
(6)转到WebSphereMQ解压后的目录中,获得WebSphereMQ授权,命令如下:
./mqlicense.sh-text_only
阅读全文后,选择1接受授权。
如图所示:
图7获得WebSphereMQ授权
图8获得WebSphereMQ授权
(7)安装WebSphereMQ客户端,命令如下:
rpm-ivhMQSeriesRuntime-6.0.0-0.i386.rpm
rpm-ivhMQSeriesSDK-6.0.0-0.i386.rpm
rpm-ivhMQSeriesJava-6.0.0-0.i386.rpm
rpm-ivhMQSeriesClient-6.0.0-0.i386.rpm
rpm-ivhMQSeriesSamples-6.0.0-0.i386.rpm
(8)安装校验
rpm-qa|grepMQSeries
结果如下则表明MQ客户端的安装已成功。
MQSeriesRuntime-6.0.0-0
MQSeriesSDK-6.0.0-0
MQSeriesJava-6.0.0-0
MQSeriesClient-6.0.0-0
MQSeriesSamples-6.0.0-0
3WebSphereMQ的服务端和客户端的互联
本节的WebSphereMQ的服务端和客户端不在同一台机器上。
本节以上述1,2两个步骤安装好的MQ服务端和MQ客户端为例,介绍如何配置MQ的服务端和客户端使两者能够互联。
(1)服务端配置
1)点"开始"->"所有程序"->"IBMWebSphereMQ"->"WebSphereMQ资源管理器",进入WebSphereMQ资源管理器界面。
如下图所示:
图9服务端配置
2)创建名为"QM_JACK"的队列管理器
<1>选中"队列管理器"->"新建"->"队列管理器",如下图所示:
图10创建名为"QM_JACK"的队列管理器
<2>在队列管理中输入"QM_JACK",其他选项默认不变,点"下一步":
图11在队列管理中输入"QM_JACK"
<3>设置队列日志(本步骤采用系统默认设置),点"下一步":
图12设置队列日志
<4>启动队列管理器,创建服务器连接通道,允许在TCP/IP上进行队列管理器的远程管理,点击"下一步":
图13创建服务器连接通道
<5>设置队列管理器QM_JACK的侦听端口:
8927(用户可以根据需要自行更改端口号),点击"完成"。
图14设置队列管理器QM_JACK的侦听端口
<6>系统进入等待界面:
图15系统等待界面
<7>队列管理器QM_JACK创建成功
图16系统队列管理器QM_JACK创建成功
3)在QM_JACK下创建名为"QUEUE_RECV"和"QUEUE_REPLY"的本地队列(客户可以根据自己的需求随意更改本地队列的名字和数量,这里创建这两个本地队列只是为之后的MQ_Tuxedo项目作准备):
图17定义本地队列
图18定义本地队列
设置队列名后其他属性全为系统默认值,点击"确定"。
4)在QM_JACK下创建名为"CNN_JACK"的服务器通道。
图19创建服务器连接通道
图20创建服务器连接通道
通道名称设为CNN_JACK,其他选项保留为系统默认设置,点击"确定"。
5)在MQ服务器端的计算机用户中添加MQ客户端所在计算机的系统用户。
比如我的MQ客户端被SuseLinux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windowsxp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。
具体步骤如下:
<1>点击"开始"->"控制面板"->"计算机管理"->"系统工具"->"本地用户和组"->"用户",点右键,选"新用户",如下图所示:
图21创建系统用户
<2>创建新用户:
root(注意:
这里的用户名"root"是MQ客户端所在系统的用户名,用户要根据具体情况进行修改)
图22创建系统用户
随意设置一个有效密码,选中密码永不过期,点击"创建"。
<3>将新用户加入mqm组(注意:
这里的mqm组是我们安装完MQServer后系统自动创建的)。
具体操作如下:
图23设置系统用户所在组
点击"属性":
图24设置系统用户所在组
点击"添加":
图25设置系统用户所在组
输入对象名称:
mqm,点击"确定":
图26设置系统用户所在组
root用户被添入mqm组中:
图27设置系统用户所在组
点击"应用",点击"确定"。
启动监听器
Runmqlsr–mQM_JACK"
设置
exportMQCHLTAB=/PTAH/AMQCLCHL.TAB
重启机器。
至此,MQ服务端的配置完成。
(2)客户端配置
按照我们前面的步骤,MQ客户端是安装在SuseLinux10上,所以本节以SuseLinux10下的MQClientv6为例说明如何配置MQ客户端才能连上MQ服务器。
1)设置MQSERVER环境变量,命令如下:
exportMQSERVER='CNN_JACK/tcp/9.186.110.133(8927)'
参数说明:
服务器连接通道名称:
CNN_JACK
服务器连接通道协议类型:
tcp
服务器IP地址:
9.186.110.133
服务器连接通道所在的队列管理器QM_JACK的侦听端口:
8927
2)测试客户端与服务端的网络连接
在客户端使用ping命令检查客户端是否能连上服务端机器。
同样,在服务端使用ping命令检查服务端是否能连上客户端机器。
测试完成后,进入下一步。
3)进入/opt/mqm/samp/bin,使用样本程序amqsputc(用来将消息发送到服务端队列)和amqsgetc(用来从服务端队列中读取消息)来测试客户端与服务端的MQ连接是否畅通,具体步骤如下:
<1>输入命令:
./amqsputcQUEUE_RECVQM_JACK
则会显示以下消息:
SampleAMQSPUT0start
targetqueueisQUEUE_RECV
<2>输入一些字符,然后双击"Enter"键,则显示如下信息:
SampleAMQSPUT0end
<3>要从队列获取消息,则输入如下命令:
./amqsgetcQUEUE_RECVQM_JACK
则会在屏幕上打印出刚才输入的字符数据消息。
暂停后,;例子程序结束。
如果以上步骤都能够完成,则完成了MQ服务端和客户端的互联配置。
注意:
有时候,MQ客户端联服务端时会因为两端字符集编码CCSID不一样造成连接的失败,典型错误是:
MQCONNendedwithreasoncode2059。
在队列管理器的错误日志(位于/var/mqm/errors/AMQERROR**.log)中有如下信息:
-------------------------------------------------------------------------------
08/23/200211:
51:
48
AMQ9541:
CCSIDsuppliedfordataconversionnotsupported.
EXPLANATION:
Theprogramendedbecause,
eitherthesourceCCSID'437'orthetargetCCSID'1381'isnotvalid,
orisnotcurrentlysupported.
ACTION:
CorrecttheCCSIDthatisnotvalid,orensurethattherequestedCCSIDcanbesupported.
解决方法如下:
在服务端用runmqscqmname命令,输入disqmgr查看CCSID属性值nnnn,在客户端上配置环境变量:
Windows下:
setMQCCSID=nnnn(在服务端看到的CCSID),Linux下:
exportMQCCSID=nnnn(在服务端看到的CCSID),重新启动MQ客户端机器即可。
中信项目实例
//启动队列管理器
StrmqmACS_QM_DVP
//进入队列管理器
runmqscACS_QM_DVP
//查看队列通道信息
1.查看全部队列通道名
DISCHL(*)
2.查看具体某个通道信息
DISCHL(ACS_CHL_73810_R)//接收通道CHLTYPE(RCVR)
DISCHL(ACS_CHL_73810_S)//接收通道CHLTYPE(SDR)
//查看全部队列信息
DISQUEUE(*)
//查看某个队列信息
DISQUEUE(R_LQ_73810)//接收——本地——队列Recv_LocalQueue_73810
//查看传输队列
DISQUEUE(TRANSQ_73810)//传输队列
//查看发送远端队列
DISQUEUE(S_RQ_73810)//发送——远端队列Send_RemotQueue_73810
//查看死信队列
DISQUEUE(DeadQ_73810)//死信队列deadqueue
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mq 命令