IBM MQ 从接收通道获取数据

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>

原文地址:https://www.cnblogs.com/linxixinxiang/p/11404448.html

时间: 2024-11-09 00:13:39

IBM MQ 从接收通道获取数据的相关文章

IBM MQ通道

IBM MQ 一 侦听器 侦听器是一个 IBM? MQ 进程,用于侦听与队列管理器的连接. MQ Explorer 中的每个侦听器对象都表示一个侦听器进程:但是,如果从命令行启动侦听器进程,那么在 MQ Explorer 中此侦听器不能由侦听器对象表示.因此,要从 MQ Explorer 管理侦听器进程,请在 MQ Explorer 中创建侦听器对象.当您在 MQ Explorer 中启动侦听器对象时,侦听器进程也会启动. 在 IBM MQ 中提供了多种不同类型的侦听器,这取决于消息通道代理程序

IBM MQ术语简介

IBM MQ https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_8.0.0/com.ibm.mq.helphome.v80.doc/WelcomePagev8r0.htm 侦听器侦听器是一个 IBM? MQ 进程,用于侦听与队列管理器的连接. MQ Explorer 中的每个侦听器对象都表示一个侦听器进程:但是,如果从命令行启动侦听器进程,那么在 MQ Explorer 中此侦听器不能由侦听器对象表示.因此,要从 MQ Explorer

IBM MQ 学习

1 import java.io.IOException; 2 import java.util.HashMap; 3 import java.util.Map; 4 5 import com.ibm.mq.MQC; 6 import com.ibm.mq.MQEnvironment; 7 import com.ibm.mq.MQException; 8 import com.ibm.mq.MQGetMessageOptions; 9 import com.ibm.mq.MQMessage; 1

运维文档分享(2):IBM MQ运维使用手册

前言:最近整理电脑,发现之前写的几篇生产上的运维测试文档,特来分享. 一.测试环境说明 本次测试linux端和windows端主要参数配置如下:Linux:操作系统版本:SUSE Linux Enterprise Server 10 SP4    32bitMQ版本:7.1.0.3Ip地址:192.168.0.151 Windows:操作系统版本:Windows 7旗舰版SP1 32bitMQ版本:7.1.0.3Ip地址:192.168.0.111 二.MQ简介1)消息中间件概述    消息队列

IBM MQ介绍

转自:http://hi.baidu.com/lubezhang/blog/item/bd308b3b7ecce3ec14cecb4f.html IBM MQ(IBM Message Queue)是IBM的一款商业消息中间产品,适用于分布式计算环境或异构系统之中.消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行前不需要等待接收程序接收此消息. MQ基本概念

使用Loadrunner对IBM MQ进行性能测试

一.概述 使用Loadrunner对IBM MQ进行性能测试,需要用到java vuser以及java编码知识.此次先介绍什么是IBM MQ,然后java vuser的使用与配置细节,最后介绍IBM MQ的测试脚本. 二.IBM MQ介绍 IBM MQ(IBM Message Queue)是IBM的一款商业消息中间产品,适用于分布式计算环境或异构系统之中.消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上,队列存储消息直到它们被应用程序读走. 通过消息队列应用程序可独立地

IBM MQ学习过程问题汇总

IBM MQ使用过程问题汇总----------------------------------------------1. 客户端发送消息时出现2035问题的解决过程####环境:win7系统administrator用户,WebSphereMQ8.0####测试:执行命令"amqsputc.exe Q1"a---按照教程添加"服务器连接"通道时为MCA指定用户名.无效:b---执行runmqsc命令,输入alter qmgr chlauth(disabled)禁

连接IBM MQ原因码报2035的错误解决办法

我们的系统使用了ibm mq,用户用来向国家局上报文件和接收文件,前几天用户说上报一直不成功.由于 开发这块程序的人已经辞职了,我觉定在我的机器部署一套,研究一下.我的思路: 在我的机器上安装mq,建立两个队列,一个用来接收,一个用来发送;在另外一台机器上,发布应用程序,通 过java client向我的机器的队列发送消息和接收消息. mq安装成功,队列管理器.队列.通道也都建起来了,用mq自带的api检测程序检测也成功了. 接下来,在另外一台机器上通过程序发送消息,结果就是不行,总是报原因码是

spring监听与IBM MQ JMS整合

spring xml 的配置: 文件名:applicationContext-biz-mq.xml [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001