Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59622
  • 博文数量: 10
  • 博客积分: 96
  • 博客等级: 民兵
  • 技术积分: 85
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-09 22:11
文章分类

全部博文(10)

文章存档

2017年(1)

2016年(2)

2012年(4)

2011年(3)

我的朋友

分类: 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

一、安装部署

1.创建mq组和用户

groupadd -g 320 mqm

useradd -g 320 -u 320 -d /home/mqm mqm

passwd mqm

2.修改系统环境配置

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

3.解压mq

tar zxvf  mqadv_dev75_linux_x86-64.tar.gz

4.进入解压目录,执行

rpm -ivh *.rpm

完成后会自动安装在/opt/mqm

5.卸载mq

Yum -y  remove MQSeries*

注:以上在root用户下进行

二、配置客户端和服务器模式

1./opt/mqm/bin /opt/mqm/samp/bin 命令加载到系统环境变量中,此步骤在root下进行: vi /etc/profile ,加入文件末尾

export PATH=$PATH:/opt/mqm/bin:/opt/mqm/samp/bin

保存完后,执行source /etc/profile.

2.切换到mqm用户, su mqm

3.配置服务器

注:该服务器主要架构是一个MQ 管理器,两个队列,一个接收,一个发送,定义一个通道,客户端通过通道和MQ通信

1)创建队列管理器并启动

crtmqm Q1

strmqm   Q1

2)创建队列,并配置通道

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
    服务端设置完毕。

3)配置客户端

vi $HOME/.bash_profile
      设置环境变量PATHMQSERVER,将下列文本添加至文件末尾:
      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的配置和基本功能使用。

 

 

三、使用c++接口进行编程编译

/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(启动跟踪)

 

阅读(8598) | 评论(2) | 转发(0) |
0

上一篇:写给自己的话

下一篇:没有了

给主人留下些什么吧!~~

xcjm2019-05-14 09:49:21

xcjm:你好,我想问下有v7.5.0.2的安装文件吗?现在ibm不开放下载了,我找不到安装文件,有的话麻烦发我一份谢谢

122534275

回复 | 举报

xcjm2019-05-14 09:48:42

你好,我想问下有v7.5.0.2的安装文件吗?现在ibm不开放下载了,我找不到安装文件,有的话麻烦发我一份谢谢