下载地址

http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/messaging/mqadv/

安装

1.2 解压并安装

1.2.1解压后,解压文件都在MQServer中

tar –xzvf IBM_MQ_9.0.0.0_LINUX_X86-64_TRIAL.tar.gz

1.2.2进入MQServer文件夹中:

[root@izwz96vkfmmbo4o9iwca5oz tools]# cd MQServer/

1.2.3运行 MQ 许可证程序

(由于本人下载的IBM MQ安装包非Linux下包,所以找不到./mqlicense.sh,所以注意不要下载错安装包)

执行[root@izwz96vkfmmbo4o9iwca5oz MQServer]#./mqlicense.sh

1.2.4安装 WebSphere MQ for Linux 服务器(Runtime、SDK 和 Server 软件包):

[root@izwz96vkfmmbo4o9iwca5oz MQServer]# rpm -U MQSeriesRuntime-9.0.0-0.x86_64.rpm

[root@izwz96vkfmmbo4o9iwca5oz MQServer]# rpm -U MQSeriesSDK-9.0.0-0.x86_64.rpm

[root@izwz96vkfmmbo4o9iwca5oz MQServer]# rpm -U MQSeriesServer-9.0.0-0.x86_64.rpm

1.2.5安装 WebSphere MQ for Linux 客户机:

(注:安装服务器时我们已经安装了 Runtime 软件包):

[root@izwz96vkfmmbo4o9iwca5oz MQServer]#rpm -U MQSeriesClient-9.0.0-0.x86_64.rpm

1.2.6安装 WebSphere MQ 样本程序:

(其中包括 amqsput、amqsget、amqsgbr 和 amqsbcg 等)

[root@izwz96vkfmmbo4o9iwca5oz MQServer]#rpm -U MQSeriesSamples-9.0.0-0.x86_64.rpm

这个命令把 WebSphere MQ 样本程序安装在 /opt/mqm/samp/bin 中。它还将在 /opt/mqm/samp 中安装这些样本程序的 C 和 CPP 源文件。您可以打开这些样本程序的一些源文件(如 amqsput.c ),以了解如何使用 MQ API(MQI)。

1.2.7 创建组和用户

安装过程创建了一个名为 mqm 的用户和一个同样名为 mqm 的组。此时,新用户是被锁定的,您必须设置一个密码来解锁,这样才能继续本文的第二部分。可用 passwd 命令做到这一点:

[root@izwz96vkfmmbo4o9iwca5oz MQServer]# passwd mqm

将提示您输入用于 mqm 的新密码并随后确认它。

提示:如果您已经有 Linux 方面的经验,并且更愿意用一个现有的用户来管理 WebSphere MQ,那么可以通过将该用户添加到 mqm 组来做到这一点

2运行IBM MQ

在开始这一节之前,请确保象前一节末尾所描述的那样,对 WebSphere MQ 安装程序为您创建的新用户 mqm 设置了密码。

2.1以用户 mqm 的身份登录。

切换用户:

su mqm

2.2创建队列管理器

使用 crtmqm 命令来创建一个名为 QM1 的队列管理器。我们把它作为缺省队列,并且将不在创建时指定死信队列。然后使用 strmqm命令启动队列管理器。

[mqm@echidna mqm]$ crtmqm -q QM1

There are 34 days left in the beta test period for this copy of WebSphere MQ.

WebSphere MQ queue manager created.

Creating or replacing default objects for QM1.

Default objects statistics : 31 created. 0 replaced. 0 failed.

Completing setup.

Setup completed.

[mqm@echidna mqm]$ strmqm QM1

There are 34 days left in the beta test period for this copy of WebSphere MQ.

Purchased processor allowance not set (use setmqcap).

WebSphere MQ queue manager 'QM1' started.

[mqm@echidna mqm]$

问题解决:

如果执行crtmqm命令时提示

-bash-3.2$ crtmqm

-bash: crtmqm: command not found

[root@ izwz96vkfmmbo4o9iwca5oz ~]# find / -name crtmqm

/opt/mqm/bin/crtmqm

则需要配置mqm用户的环境变量,编辑如下文件,并添加下面的内容,如下:

第一种方法: 相对第二种较安全 仅对 mqm用户有效

1)-bash-3.2$ vi /var/mqm/.bash_profile   --有可能会在文件夹下看不到这个文件,通过编辑即可看到

PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

2)执行“.”命令,使这个文件生效

-bash-3.2$ source  .bash_profile

3)再次尝试实行crtmqm或是dspmqm命令,即可发现已经生效。

第二种方法:

1)su  root

2)vim /etc/profile

3)在最后面加上:PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/bin

4)关闭远程终端重新打开,无需重启服务器

--启动队列管理器
strmqm  QMEMBFE

--启动监听
runmqlsr -m QMEMBFE -p 1414 -t tcp &

--用户交互管理界面程序
runmqsc  QMEMBFE
--创建本地队列
DEFINE QLOCAL (Q1)
--创建名称为DC.SVRCONN的服务器连接通道
DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE
--删除通道
DELETE CHANNEL(DC.SVRCONN)

----------------------------------------------------------------------------------------------------------------------------------

使用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 FirstMQDemo {
    private String qManager;// QueueManager名
    private MQQueueManager qMgr;
    private MQQueue qQueue;
    private String HOST_NAME;
    private int PORT = 0;
    private String Q_NAME;
    private String CHANNEL;
    private int CCSID;
    private String Msg;

public void init() {
        try {
            HOST_NAME = "";// Hostname或IP
            PORT = 1414;// 要有一个侦听器,处于活动状态,且监听1414端口
            qManager = "QMEMBFE";
            Q_NAME = "Q1";// Q1是一个本地队列
            CHANNEL = "DC.1";// QM_TEST上要建一个名为DC.SVRCONN的服务器连接通道
            CCSID = 1381; // 表示是简体中文,CCSID的值在AIX上一般设为1383,如果要支持GBK则设为1386,在WIN上设为1381。
            MQEnvironment.hostname = HOST_NAME; // 安裝MQ所在的ip address
            MQEnvironment.port = PORT; // TCP/IP port
            MQEnvironment.channel = CHANNEL;
            MQEnvironment.CCSID = CCSID;
            MQEnvironment.userID = "";
            MQEnvironment.password = "";
            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, "utf-8"));
        } 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
     * @throws MQException
     */
    public static void main(String[] args) throws MQException {
        FirstMQDemo firstMQ = new FirstMQDemo();
        firstMQ.init();
        try {
            firstMQ.SendMsg("你好,Webshpere MQ 7.5!".getBytes("utf-8"));
            firstMQ.GetMsg();
        } catch (Exception e) {
            e.printStackTrace();
        }
        firstMQ.finalizer();
    }
}

linux ibm mq 安装,消息发送与接收相关推荐

  1. php ibm mq,php linux IBM MQ安装以及php对接

    php linux IBM MQ安装以及php对接 输入信息test,双击回车就结束了 获取队列内容: $mqcno=array("Version"=>MQSERIES_MQ ...

  2. ibm mq安装配置_在IBM Integration Bus v10和IBM MQ v8之间配置MQ连接

    ibm mq安装配置 在IBM Integration Bus v10之前,Integration节点依靠队列管理器来连接到IBM MQ. 如果Integration节点必须处理发送到队列管理器的消息 ...

  3. MQ中将消息发送至远程队列的配置

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! MQ中将 ...

  4. go 实现 kafka 消息发送、接收

    引言 网络上关于 go 实现 kafka 消息发送和接收的文章很多,但是实际操作起来又不是很清楚,本文在网络资源的基础上,结合自己搭建过程中遇到的问题进行了总结. 本文的实验主机:Mac笔记本. 一. ...

  5. python 网络编程之Socket通信案例消息发送与接收

    背景 网络编程是python编程中的一项基本技术.本文将实现一个简单的Socket通信案例消息发送与接收 正文 在python中的socket编程的大致流程图如上所示 我们来首先编写客户端的代码: # ...

  6. 使用Akka持久化——消息发送与接收

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/beliefer/article/details/53929751 前言 在<使用Akka持久化 ...

  7. 超全IBM MQ安装运行与代码连接测试

    前言 选择windows安装测试是有必要的,IBM MQ不同于其他MQ,其运行与创建队列管理器很复杂,在打算部署linux之前,建议先把windows下的可视化操作理清,不至于踩坑! 安装 IBM M ...

  8. rocket mq 监听端口_如何使用Jmeter实现MQ数据的发送和接收?性能测试实战篇

    JMeter是性能测试中被普遍使用的一种工具,常用于压力测试.该工具具有丰富的扩展插件用以满足不同情况下性能测试的需求.消息队列(Message Queue)简称为MQ,作为目前的主流中间件,在很多软 ...

  9. RabbitMQ消息发送和接收

    1.RabbitMQ的消息发送和接受机制 所有 MQ 产品从模型抽象上来说都是一样的过程: 消费者(consumer)订阅某个队列.生产者(producer)创建消息,然后发布到队列(queue)中, ...

最新文章

  1. 函数指针与指针函数的使用与小结
  2. java gui拖拽_Java Swing拖放
  3. JavaWeb学习总结(五十二)——使用JavaMail创建邮件和发送邮件
  4. C++ 常见bug记录(持续记录中)
  5. Preference跳转activity出错Unable to find explicit activity class
  6. PHP算法之冒泡排序
  7. oracle表分区失效14400,Oracle11g:分区表数据操作出现ORA-14400异常处理详解
  8. 轻轻的你来了,悄悄的你走了,邓总没有带走一个bug
  9. RPC和REST区别
  10. 第一届大数据科学与工程国际会议最新、最热会议日程---中国贵阳 2016年5月25-26日...
  11. [leetcode] 413. 等差数列划分
  12. 计算机的五笔咋么学,电脑五笔输入法怎么学
  13. Excel在统计分析中的应用—第二章—描述性统计-Part5-峰度(峰值和矩峰度系数)
  14. Currently, defining WATERMARK on a changelog source is not supported
  15. Python之基础详解(九):关于VisualMapOpts视觉映射配置项详解
  16. 略晓网:经验真的能换钱
  17. 深圳中学因招聘上热搜:名校博士挤破头想进,教学成绩也确实不服不行
  18. MOS管的导通电阻RDS(on)与阈值电压VGS(th)温度特性详解
  19. 低温工作笔记本计算机,电脑低温自动关机
  20. android 5.0一键刷机教程,HTC D820t (Desire 820 移动4G Android 5.0)一键刷机教程,轻松刷机...

热门文章

  1. Acunetix WVS11安装和扫描
  2. centos7安装或升级Firefox、安装Google chrome浏览器详细过程及设置桌面快捷方式
  3. oracle 全面预算,财辅全面预算管理系统的设计与实现(Eclipse,Oracle)
  4. WPS去除永久广告,你真的不想知道吗?
  5. php nginx 负载均衡
  6. 第5节 Labview读取excel问题及解决办法
  7. N5105 构建 Esxi 镜像
  8. 「BJOI2019」
  9. html页面怎么显示错误信息,Web浏览器显示错误页面
  10. Springboot毕设项目连锁民宿平台系统kw3zf(java+VUE+Mybatis+Maven+Mysql)