ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

IBM MQ 从接收通道获取数据

2019-08-24 13:52:04  阅读:381  来源: 互联网

标签:IBM ibm 队列 获取数据 MQ 名称 mq com name


1、IBM MQ服务端配置(模拟服务端)

a)打开“WebSphere MQ资源管理器”,新建队列管理器,名称为fwd_dlgl_name(服务器端mq队列管理器名称),其余采用默认设置;

b)在fwd_dlgl_name(服务器端mq队列管理器名称) 队列管理器中创建本地队列,名称为fwd_bddl_name(服务器端mq本地队列名称);

c)创建传输队列,名称为fwd_csdl_name(服务器端mq本地传输队列名称)(新建时选择“本地队列”,将“用法”设置为“传输”);

d)创建远程队列定义,名称为fwd_ycdl_name(服务器端mq远程队列名称),指定远程队列名称为khd_bddl_name(客户端端mq本地队列名称),远程队列管理器名称为khd_dlgl_name(客户端mq队列管理器名称),传输队列名称为fwd_csdl_name(服务器端mq本地传输队列名称);

e)创建发送方通道,名称为yc_kh(服务端发送到客户端的通道名称),传输协议为TCP/IP,连接名称为客户端ip地址(客户端mq的端口),传输队列为fwd_csdl_name(服务器端mq本地传输队列名称);

f)创建服务器连接通道,名称为DC.SVRCONN,采用默认设置(该通道主要给后面的测试程序使用)。

g)服务端发送消息

 

找到 远程队列定义  fwd_ycdl_name,右键,如下图

 

选择“放入测试消息...”,如下图:

 

 

在 消息数据 中录入测试数据 ,点击  “放入消息”按钮 发送消息到客户端。

2、IBM MQ 客户端配置

a)打开“WebSphere MQ资源管理器”,新建队列管理器,名称为khd_dlgl_name(客户端mq队列管理器名称),其余采用默认设置;

b)在khd_dlgl_name(客户端mq队列管理器名称)队列管理器中创建本地队列,名称为khd_bddl_name(客户端端mq本地队列名称);

c)创建接受方通道,名称为yc_kh(必须与服务端发送到客户端的通道名称相同),采用默认设置;

d)创建服务器连接通道,名称为DC.SVRCONN,采用默认设置。

e)客户端读取消息代码

import com.ibm.mq.MQC;

import com.ibm.mq.MQEnvironment;

import com.ibm.mq.MQMessage;

import com.ibm.mq.MQQueue;

import com.ibm.mq.MQQueueManager;

public class IBMQRead {

/** 变量 */

private final static int OPENOPTIONS = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE;

  static{

MQEnvironment.hostname = "192.168.0.158";

MQEnvironment.channel = "DC.SVRCONN";

MQEnvironment.port = 1414;

MQEnvironment.CCSID = 1381;

  }

public static void main(String[] args) {

try {

//初始化

 MQQueueManager queueManager = new MQQueueManager("khd_dlgl_name");//队列管理器名称

 //  队列名称     

 MQQueue mqQueue = queueManager.accessQueue("khd_bddl_name", OPENOPTIONS, null, null, null);

//获取管道深度

int currentDepth = mqQueue.getCurrentDepth();

//进行遍历管道中的所有数据内容

while(currentDepth-- > 0){

// 要读的队列的消息

MQMessage mqMessage = new MQMessage();

mqQueue.get(mqMessage);

int dataLength = mqMessage.getDataLength();

//得到字符串

String readXml = mqMessage.readStringOfByteLength(dataLength);

System.out.println(readXml);

}

} catch (Exception e) {

e.printStackTrace();

}

 

}

}

 

 

IBM MQ所需的 jar包

 

 <!-- IBMMQ -->

     <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>jmqi</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>headers</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm</groupId>

            <artifactId>mq</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>jms</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>dhbcore</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm</groupId>

            <artifactId>mqjms</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>connector</artifactId>

            <version>7.5</version>

        </dependency>

        <dependency>

            <groupId>com.ibm.mq</groupId>

            <artifactId>commonservices</artifactId>

            <version>7.5</version>

        </dependency>

 

标签:IBM,ibm,队列,获取数据,MQ,名称,mq,com,name
来源: https://www.cnblogs.com/linxixinxiang/p/11404448.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有