分类: C/C++
2016-10-26 12:05:52
Linux IBM MQ 安装部署及环境的搭建及C++接口调用
环境描述:
IBM MQ版本:mqadv_dev75_linux_x86-64.tar.gz
Linux 系统版本:Linux 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
groupadd -g 320 mqm
useradd -g 320 -u 320 -d /home/mqm mqm
passwd mqm
vi /etc/sysctl.conf
添加:
kernel.msgmni = 1024
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.shmmax = 268435456
kernel.sem = 500 256000 250 1024
fs.file-max = 524288
net.ipv4.tcp_keepalive_time = 300
tar zxvf mqadv_dev75_linux_x86-64.tar.gz
rpm -ivh *.rpm
完成后会自动安装在/opt/mqm下
Yum -y remove MQSeries*
注:以上在root用户下进行
export PATH=$PATH:/opt/mqm/bin:/opt/mqm/samp/bin
保存完后,执行source /etc/profile.
crtmqm Q1
strmqm Q1
runmqsc Q1
define qlocal (SEND_QUEUE) //定义本地队列
define qlocal (RECEIVE_QUEUE) //定义本地队列
define channel(CLIENT.CHL) chltype(SVRCONN) trptype(TCP) mcauser('mqm')
//定义服务器连接通道,mqadmin为客户机映射到的服务器本地MQ用户
define listener (LSR. Q1)TRPTYPE(TCP) PORT(1414)
//定义侦听器,需保证TCP端口1414没被其他程序使用,否则使用其他端口
start listener (LSR. Q1) //启动侦听器
end
服务端设置完毕。
vi $HOME/.bash_profile
设置环境变量PATH和MQSERVER,将下列文本添加至文件末尾:
export PATH=${PATH}:/opt/mqm/bin:/opt/mqm/samp/bin
export MQSERVER = CLIENT.CHL/TCP/'hostname'; export MQSERVER
注销并重新登录以使更改生效。
测试验证是否已经部署成功
4)客户机放入消息到服务器队列
shell命令:
amqsputc SEND_QUEUE Q1
//调用MQ内置样本程序,连接远程MQ服务器,并向服务器队列放入消息
具体过程省略。
5)客户机从服务器队列获取消息
shell命令:
amqsgetc SEND_QUEUE Q1
//调用MQ内置样本程序,连接远程MQ服务器,并从服务器队列获取消息
具体过程省略。
至此,完成WebSphere MQ的配置和基本功能使用。
在/opt/mqm/samp/下有
编译过程
配置环境
1. vi /etc/profile ,加入文件末尾
export LD_LIBRARY_PATH=/opt/mqm/lib64/4.1/:$LD_LIBRARY_PATH 保存完后,执行source /etc/profile.
2. 编译imqsput.cpp
g++ imqsput.cpp –o imqsput –g –I/opt/mqm/inc –L/opt/mqm/ lib64/4.1 -l imqs23gl
3. 执行
./imqsput SEND_QUEUE Q1 CLIENT.CHL/TCP/ '192.168.230.2'
注:1. 较高的linux redhat 在编译c++接口时需要加上 imqd23gl
2.运行程序时注意用户权限,mq7.0以上的版本对于权限有了限制,比如,执行上面程序需要在mqm用户下
3.在mq中,在同一个队列管理中,getmsg putmsg 的调用需要是原子操作,如果同时进行,会报错,程序中需要解决这个问题。
一、MQ命令集合
MQ命令集合有三种命令:控制命令、MQSC(MQ脚本命令)和PCF(Programmable Command Formats,可编程的命令格式)。
二、控制命令
控制命令:用于管理 WebSphere MQ的系统配置,包括队列管理器、侦听器、通道、日志的管理。
例如:创建队列管理器(crtmqm),启动队列管理器(strmqm),启动用于运行队列管理器MQSC命令的控制台(runmqsc)、运行通道(runmqchl)
对于Linux,WebSphere MQ 控制命令都从 shell输入和执行。
控制命令列表如下所示:
addmqinf(添加配置信息)
amqccert(检查证书链)
amqmdain(WebSphere MQ 服务控制)
amqmfsck(文件系统检查)
amqtcert(传送证书)
crtmqcvx(数据转换)
crtmqm(创建队列管理器)
dltmqm(删除队列管理器)
dmpmqaut(转储权限)
dmpmqlog(转储日志)
dspmq(显示队列管理器)
dspmqaut(显示权限)
dspmqcsv(显示命令服务器)
dspmqfls(显示文件)
dspmqinf(显示配置信息)
dspmqrte(WebSphere MQ 显示路由应用程序)
dspmqtrc(显示格式化的跟踪输出)
dspmqtrn(显示事务)
dspmqver(显示版本信息)
endmqcsv(结束命令服务器)
endmqlsr(结束侦听器)
endmqdnm(停止 .NET 监视器)
endmqm(结束队列管理器)
endmqtrc(结束跟踪)
migmbbrk(迁移发布/预订信息)
mqftapp(运行文件传输应用程序 GUI)
mqftrcv(在服务器上接收文件)
mqftrcvc(在客户机上接收文件)
mqftsnd(从服务器发送文件)
mqftsndc(从客户机发送文件)
rcdmqimg(记录介质映像)
rcrmqobj(重新创建对象)
rmvmqinf(除去配置信息)
rsvmqtrn(解决事务)
runmqchi(运行通道启动程序)
runmqchl(运行通道)
runmqdlq(运行死信队列处理程序)
runmqdnm(运行 .NET 监视器)
runmqlsr(运行侦听器)
runmqsc(运行 MQSC 命令)
runmqtmc(启动客户机触发器监视器)
runmqtrm(启动触发器监视器)
setmqaut(授予或撤销权限)
setmqcrl(设置证书撤销列表 (CRL) LDAP 服务器定义)
setmqprd(登记生产许可证)
setmqscp(设置服务连接点)
strmqcfg(启动 WebSphere MQ 资源管理器)
strmqcsv(启动命令服务器)
strmqm(启动队列管理器)
strmqtrc(启动跟踪)