一、下载7.5 Trial版本

http://www.ibm.com/developerworks/downloads/ws/wmq/

这是下载网址,下载前先必须注册IBM ID,下载完成后一路Next即可(注:windows上安装时,会询问是否域环境,初次学习时,为简单起见,建议选择No)

安装完成后,MQ的Bin目录会自动添加到环境变量Path中,以后就可以直接用Dos命令行窗口操作(当然,也可以用图形化GUI方式通过IBM WebSphere MQ Explorer来管理)

注:安装时,强烈建议用管理员Administrator身份安装,否则安装完成后,有可能license无法生效、runmqsc命令模式下无法正常执行命令.

二、创建队列管理器

WIN + R键,输入cmd,进入命令行窗口,键入:

crtmqm QM_TEST

创建一个队列管理器QM_TEST(你可以改成自己想要的名字),如果把整个MQ理解成一个数据库实例,QM_TEST相当于就是db instance中的schema(或user)

命令行创建的队列管理器默认是不活动状态的,可以用

strmqm QM_TEST

来启动队列管理器

三、创建队列

如果说“队列管理器”是db中的schema,那么"队列"就相当于db中的Table了,而队列中的每条"消息",就相当于Table中的每条记录,继续在命令行窗口模式下,输入

runmqsc QM_TEST

将进入MQ的交互命令模式,继续输入

define qlocal(Q1)

将创建一个本地队列Q1(你可以改成自己需要的名字),如果此时你打开 "开始菜单->程序->IBM WebSphere MQ->WebSphere MQ Explorer (Installation1)"也能同步在图形界面下,看到这个队列

最后键入end,退出MQ的交互命令模式。

四、发送消息

继续在Windows命令模式下,输入

amqsput Q1 QM_TEST

这里系统将处于等待用户输入的状态,随便输入一些消息,然后连敲二次回车,完成消息发送

五、接收消息

amqsget Q1 QM_TEST

把刚才的put换成了get,将从队列管理器QM_TEST的队列Q1中,把消息取出来

六、进阶指南

熟悉以上命令行操作后,还可以用图形化的操作方式再强化一遍(建议还是多用命令行模式,因为有些操作只能用命令行完成,比如后面要提到的修改队列管理器编码)

WebSphere MQ Explorer中,从"帮助"菜单里调出帮助文档,里面有一个不错的教程,强烈推荐新手看一遍

不过,"教程2:将消息发送至远程队列"这里,帮助文档上有几个细节没讲透,导致初次用命令行照着做,可能会不成功,几个要点如下:

1、通道命名问题

发送方与接收方的通道名称,必须一样,这样二边才能对应起来

2、接收方必须要有侦听器,而且要处于激活状态

3、发送方的发送通道中,连接名称格式为:"<接收方HostName或IP地址>(接收方-队列管理器-侦听器的TCP端口) ,不包括"<>“,比如比如:yangjm(1514)或172.12.134.14(1514)

4、发送方的发送通道必须处于激活状态,如果通道启动失败,尝试右键->ping/复位,如果还不行,检查上述要点1-3是否设置有问题

七、远程连接问题

图形方式添加“远程队列管理器”时,如果远程队列也是7.x或以上版本,当前登录用户是管理员时,将提示权利不足,拒绝连接,原因是7.0以上,MQ提高了安全性,会默认拦截管理员,详情可参考IBM上的解释 http://www-01.ibm.com/support/docview.wss?uid=swg21636532

解决方式:

1. 更换当前用户,建一个mqm用户组(MQ安装后,会默认创建该Windows用户组)的用户,然后以该用户身份登录操作

2.参考IBM上的解释,如果出于学习目的,最简单的做法,就是在runmqsc交互模式下,键入

ALTER QMGR CHLAUTH(DISABLED)  直接关闭通道认证(生产环境不推荐这么做)

另外,要想本机上的队列能被远程管理,前提是该队列管理器允许远程管理,操作方式:队列管理器上右击->选择"远程管理...",接下来的事情大家都知道

八、字符集编码问题

每 个队列管理器,都有一个CCSID的属性,对应的就是字符集编码,在windows系统中,这个编码应该是1381,如果你是用其它OS(比如 linux)的配置通过脚本导入MQ的,可能编码就不是1381了,这会导致在windows上无法连接\启动队列管理器,可以通过MQ交互命令行修改,

runmqsc QM_TEST 进入QM_TEST的MQ交互模式

DISPLAY QMGR CCSID 查看当前的CCSID属性

ALTER QMGR CCSID(1381) 修改字符集编码为1381

九、如何从“试用版”升级成“正式版”

试用版默认只能用90天,到期后,如果购买了正式版的license,可以通过命令行导入license,命令如下:

setmqprd x:\license\amqpcert.lic

注:amqpcert.lic中的P即代表这是Product生产版本,setmqprd 后面的路径即为license文件的所在路径

十、java连接示例代码

import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;/** 可以在MQ的资源管理器的某一个队列上放入测试消息、浏览消息等* 可以放入多条消息,按先进先出的方式取得*/
public class MQTest {private String qManager;// QueueManager名private MQQueueManager qMgr;private MQQueue qQueue;String HOST_NAME;int PORT = 0;String Q_NAME;String CHANNEL;int CCSID;String Msg;public void init() {try {HOST_NAME = "yangjm";//Hostname或IPPORT = 1414;//要有一个侦听器,处于活动状态,且监听1414端口qManager = "QM_APPLE";Q_NAME = "Q1";//Q1是一个本地队列CHANNEL = "DC.SVRCONN";//QM_APPLE上要建一个名为DC.SVRCONN的服务器连接通道CCSID = 1381; // 表示是简体中文,// CCSID的值在AIX上一般设为1383,如果要支持GBK则设为1386,在WIN上设为1381。
MQEnvironment.hostname = HOST_NAME; // 安裝MQ所在的ip addressMQEnvironment.port = PORT; // TCP/IP port
MQEnvironment.channel = CHANNEL;MQEnvironment.CCSID = CCSID;qMgr = new MQQueueManager(qManager);int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE| MQC.MQOO_OUTPUT;qQueue = qMgr.accessQueue(Q_NAME, qOptioin);} catch (MQException e) {System.out.println("A WebSphere MQ error occurred : Completion code "+ e.completionCode + " Reason Code is "+ e.reasonCode);}}void finalizer() {try {qQueue.close();qMgr.disconnect();} catch (MQException e) {System.out.println("A WebSphere MQ error occurred : Completion code "+ e.completionCode + " Reason Code is "+ e.reasonCode);}}/** 取过一次,下次就没有了*/public void GetMsg() {try {MQMessage retrievedMessage = new MQMessage();MQGetMessageOptions gmo = new MQGetMessageOptions();gmo.options += MQC.MQPMO_SYNCPOINT;qQueue.get(retrievedMessage, gmo);int length = retrievedMessage.getDataLength();byte[] msg = new byte[length];retrievedMessage.readFully(msg);String sMsg = new String(msg);System.out.println(sMsg);} catch (RuntimeException e) {e.printStackTrace();} catch (MQException e) {if (e.reasonCode != 2033) // 没有消息
            {e.printStackTrace();System.out.println("A WebSphere MQ error occurred : Completion code "+ e.completionCode+ " Reason Code is "+ e.reasonCode);}} catch (java.io.IOException e) {System.out.println("An error occurred whilst to the message buffer "+ e);}}public void SendMsg(byte[] qByte) {try {MQMessage qMsg = new MQMessage();qMsg.write(qByte);MQPutMessageOptions pmo = new MQPutMessageOptions();qQueue.put(qMsg, pmo);System.out.println("The message is sent!");System.out.println("\tThe message is " + new String(qByte, "GBK"));} catch (MQException e) {System.out.println("A WebSphere MQ error occurred : Completion code "+ e.completionCode + " Reason Code is "+ e.reasonCode);} catch (java.io.IOException e) {System.out.println("An error occurred whilst to the message buffer "+ e);}}/*** @param args*/public static void main(String[] args) {MQTest mqst = new MQTest();mqst.init();try {mqst.SendMsg("你好,Webshpere MQ 7.5!".getBytes("GBK"));mqst.GetMsg();} catch (Exception e) {e.printStackTrace();}mqst.finalizer();}}

需要引用的jar包(在MQ的安装目录下都有)

附示例源代码下载地址: http://pan.baidu.com/s/1qWrs9iO

 十一、机器之间迁移

如果要在多台机器上配置相同的队列管理器,一台台机器去创建、设置十分繁琐,可以用命令

dmpmqcfg -m QM_TEST -A > C:\SCRIPT\QM_TEST_SCRIPT.DUMP

注:其中QM_TEST即为要导出的队列管理器名称,而 "QM_TEST_SCRIPT.DUMP"是导出脚本的文件名,可以随便修改,执行完后会在"C:\SCRIPT\"下生成一个“.dump”的脚本文件,这里我们借用了管道操作符号">"

在另一台机器上,先把dump文件复制过去(比如就放在c盘根目录下),然后按下列步骤执行

crtmqm QM_TEST

strmqm QM_TEST

runmqsc QM_TEST < C:\QM_TEST_SCRIPT.DUMP > C:\QM_TEST_SCRIPT.OUT

这表示runmqsc命令将对 QM_TEST操作,操作的命令来源于脚本文件 C:\QM_TEST_SCRIPT.DUMP,而执行结果会输出到 C:\QM_TEST_SCRIPT.OUT

本文转自:http://www.cnblogs.com/yjmyzz/p/3505325.html

转载于:https://www.cnblogs.com/Rozdy/p/4877324.html

IBM WebSphere MQ 7.5基本用法相关推荐

  1. IBM Websphere MQ 基础0:Linux下安装IBM MQ 7.5

    背景 无.公司就是用的IBM WebSphere MQ作为消息中间件,本文记载how install it. 一. 安装包检查与准备 1. 检查 通过rpm –qa检查是否已经安装 IBM MQ,若已 ...

  2. spring boot整合IBM WebSphere MQ,并配置多个队列管理器

    IBM WebSphere MQ概述 网上关于IBM WebSphere MQ的资料挺少的,毕竟是一项老技术,整理一下从零开始对于IBM WebSphere MQ的理解 IBM WebSphere M ...

  3. java 集成ibm mq 教程_Spring Boot JMS与IBM WebSphere MQ集成配置

    Spring Boot JMS与IBM WebSphere MQ集成配置 [TOC] 前言 Spring Boot作为简化Spring开发的框架,已经为我们集成了ActiveMQ和RabbitMQ.只 ...

  4. IBM Websphere MQ 基础4:Channel通道与MQ间消息传输

    概念 WebSphere® MQ uses two different types of channels: A message channel, which is a unidirectional ...

  5. 使用c#操作IBM WebSphere MQ

    IBM WebSphere MQ 5.3升级到CSD05之后,提供了使用.net操作MQ的类库,安装完成之后,会在MQ的安装目录的bin文件夹下面多出一个amqmdnet.dll文件,把这个DLL作为 ...

  6. Hyperic HQ监控IBM WebSphere MQ

    2019独角兽企业重金招聘Python工程师标准>>> IBM公司的WebSphere MQ(MQSeries的前身)是一个信息服务器,使您可以轻松地在不同平台交流信息,整合新的和现 ...

  7. IBM WebSphere MQ 常见报错码及解决方案

    在IBM WebSphere MQ的使用过程中会遇见的常见报错描述和初步解决方案,希望能帮助各位解决使用中可能存在的问题. 序号 错误编号1 原因 1 2033 可能由于队列为空,取不到值引起的 2 ...

  8. ibm服务器安装aix系统,在aix下安装ibm websphere MQ 7.0

    最近为项目设置灾难恢复环境(包括和应用程序的灾难恢复). Oracle同步已通过DATAGUARD实现. 现在要将应用程序部署到灾难恢复室中的服务器,该应用程序软件使用ibm Websphere. M ...

  9. IBM WebSphere MQ安装及使用教程

    IBM WebSphere MQ安装及使用教程 Linux下websphere MQ安装 #软件安装目录 mkdir /opt/mqm #添加用户组mqm groupadd mqm useradd - ...

最新文章

  1. Python 位运算符号
  2. 检查电脑是否被安装***的三个小命令
  3. opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
  4. 模型描述的关系模式_你的项目该用哪种编程模式?
  5. 宁波Uber优步司机奖励政策(12月21日到12月27日)
  6. python语言高空坠球_高空坠物打击体验装置制造方法
  7. angularjs1-路由
  8. python storm连接mysql_python ORM storm中的复合外键引用
  9. 矩阵分析及应用(1-2章)
  10. 大型高端OA协同办公系统源码分享
  11. 一文教会你导出微信聊天记录
  12. 服务器里的系统盘是什么意思,云服务器系统盘是什么意思
  13. 按键精灵 获取网页flash游戏 句柄 以360浏览器为例
  14. web网页添加天气插件(心知天气)
  15. 在Nginx中正确返回HTTPS/SSL错误
  16. html 银联图标,银联标志logo图片 云闪付app扫银联标识领获红包
  17. 广义拉格朗日函数的理解
  18. android网络优化,Android性能优化----网络优化
  19. SAP中内部订单月结差异问题的实例
  20. 解读亚马逊新财报:AWS增速放缓,数字广告能否接过增长重担?

热门文章

  1. Altair HW FEKO+WinProp 2020中文版
  2. 02-基于注解的入门案例
  3. return 的使用
  4. [Python正则表达式] 字符串中xml标签的匹配
  5. 关于return和exit
  6. [原创]java WEB学习笔记02:javaWeb开发的目录结构
  7. 6.Python补充_Python之道
  8. Nginx+lua 实现调用.so文件方法
  9. 唤起微信/QQ返回不了当前页面解决方法
  10. Hive 正则匹配函数 regexp_extract