`
blaiu
  • 浏览: 130876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

IBM MQ 简单例子

    博客分类:
  • MQ
阅读更多
package com.founder.gome.bg.service.mq;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import com.ibm.mq.MQException;
import com.ibm.mq.MQQueueManager;

/**
 * @author HP
 *
 */
public class MQCommon {

	public static String MQ_MANAGER = null;  			//队列管理器名称 
	public static MQQueueManager qMgr = null;
    public static Properties props = null;
	
	public static MQQueueManager getMQQueueManager() {
		if(qMgr==null) {
			try {
				qMgr = new MQQueueManager(MQ_MANAGER);
			} catch (MQException e) {
				e.printStackTrace();
			}
		}
		return qMgr;
	}
	
	public static Properties getProperties() {
		if(props==null) {
			try {
				props = new Properties();
				InputStream ips = new BufferedInputStream(new FileInputStream("D://MQ.properties"));
				props.load(ips);
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		return props;
	}
	
	public static void mqClose() {
		try {
			if(qMgr!=null) {
				qMgr.close();
				qMgr.disconnect();
				qMgr = null;
			}
		} catch (MQException e) {
			e.printStackTrace();
		}
	}
	
	
}


package com.founder.gome.bg.service.mq;

import com.founder.gome.bg.service.mq.impl.POServiceImpl;
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.MQQueue;
import com.ibm.mq.MQQueueManager;

public class MQReceiver implements Runnable  {    
	
    private String MQ_QUEUE_NAME = "QL_GOME02_EC_SO_TO_DRAGON_SO";
    private MQQueueManager qMgr = MQCommon.getMQQueueManager();

    public MQReceiver (String mqQueueName) {
		if (null != mqQueueName && !"".equals(mqQueueName)) {
			this.MQ_QUEUE_NAME = mqQueueName;
		}
    }
    
    @SuppressWarnings("unchecked")
	public void run() {   
        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT | MQC.MQOO_INQUIRE;   
        MQQueue queue = null;   
        try { 
        	MQEnvironment.hostname = MQCommon.props.getProperty("MQ_HOST_NAME");   
            MQEnvironment.channel = MQCommon.props.getProperty("MQ_CHANNEL");   
            MQEnvironment.port = Integer.valueOf(MQCommon.props.getProperty("MQ_PROT"));   
            MQEnvironment.CCSID = Integer.valueOf(MQCommon.props.getProperty("MQ_CCSID"));
			MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
            queue = qMgr.accessQueue(MQ_QUEUE_NAME, openOptions, null, null,null);   
            int depth = queue.getCurrentDepth();   
            while(depth-- > 0)   
            {   
                MQMessage msg = new MQMessage();
                MQGetMessageOptions gmo = new MQGetMessageOptions();   
                queue.get(msg, gmo);
				int index = msg.getMessageLength();
				byte[] buffer = new byte[index];
				msg.readFully(buffer, 0, index);
				String message = new String(buffer, "utf-8");
				new POServiceImpl().getXML(message, MQ_QUEUE_NAME);
            }   
        } catch (MQException e) {   
            e.printStackTrace();   
        } catch (Exception e) {   
            e.printStackTrace();   
        } finally {
            if(queue!=null){   
                try {   
                    queue.close();   
                } catch (MQException e) {   
                    e.printStackTrace();   
                }   
            }  
        }   
    }
	
}


package com.founder.gome.bg.service.mq;

import java.io.IOException;

import com.founder.gome.bg.service.mq.impl.POServiceImpl;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
  
public class MQSender implements Runnable {   
    
    private String MQ_QUEUE_NAME = "QR_GOME02_EC_SO_TO_DRAGON_SO"; 
    private String xml;
    private MQQueue mqQueue = null;   
    public MQSender(String xml, String mqQueueName) {
		this.xml = xml;
		if (null != mqQueueName && !"".equals(mqQueueName)) {
			this.MQ_QUEUE_NAME = mqQueueName;
		}
	}
    
    @SuppressWarnings("unchecked")
	public void run() {   
        try {   
            MQEnvironment.hostname = MQCommon.props.getProperty("MQ_HOST_NAME");   
            MQEnvironment.channel = MQCommon.props.getProperty("MQ_CHANNEL");   
            MQEnvironment.port = Integer.valueOf(MQCommon.props.getProperty("MQ_PROT"));   
            MQEnvironment.CCSID = Integer.valueOf(MQCommon.props.getProperty("MQ_CCSID"));
            MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
            int sendOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;   
            mqQueue = MQCommon.getMQQueueManager().accessQueue(MQ_QUEUE_NAME, sendOptions, null, null, null);   
            MQPutMessageOptions mqPutMessageOptions = new MQPutMessageOptions();   
            MQMessage mqMessage = new MQMessage(); 
            mqMessage.write(xml.getBytes("utf-8"));   
            mqQueue.put(mqMessage, mqPutMessageOptions);
            POServiceImpl poServiceImpl = new POServiceImpl();
            poServiceImpl.writeFile(xml);
        } catch (MQException e) {   
            e.printStackTrace();   
        } catch (IOException e1) {   
            e1.printStackTrace();   
        } finally {   
            if (mqQueue != null) {   
                try {   
                    mqQueue.close();   
                } catch (MQException e) {   
                    e.printStackTrace();   
                }   
            }   
        }   
    }   
    
    
} 



分享到:
评论
4 楼 djp_java 2015-08-11  
信息中心.平台系统部
3 楼 clamking 2013-08-20  
相关jar包能不能提供下下载链接啊?分享精神值得学习。
2 楼 blaiu 2011-12-06  
很感谢你的share, class MQReveiver有异常,原因是MQEnvironment没有设置完成的时候,先new了一个MQQueueManager。所以,应该将MQQueueManager qMgr = MQCommon.getMQQueueManager()放到MQEnvironment后边
rokily 写道
很感谢你的share, class MQReveiver有异常,原因是MQEnvironment没有设置完成的时候,先new了一个MQQueueManager。所以,应该将MQQueueManager qMgr = MQCommon.getMQQueueManager()放到MQEnvironment后边


多谢 这位朋友指点

1 楼 rokily 2011-09-23  
很感谢你的share, class MQReveiver有异常,原因是MQEnvironment没有设置完成的时候,先new了一个MQQueueManager。所以,应该将MQQueueManager qMgr = MQCommon.getMQQueueManager()放到MQEnvironment后边

相关推荐

    mq.rar_MQ_ibm mq 实例代码_ibm mq 文件传输_ibm mqput怎么用_put

    本文将深入解析MQ的使用,特别是IBM MQ的实例代码、文件传输以及`mqput`命令的使用方法。 在IBM MQ中,`mqput`是一个命令行工具,用于将消息放入队列中。它适用于不同的操作系统平台,并且可以方便地集成到脚本或...

    java IBM MQ 7.5.0 生产者和消费者实例

    在这个“java IBM MQ 7.5.0 生产者和消费者实例”中,我们将探讨如何使用Java编程语言与IBM MQ 7.5.0版本进行交互,创建生产者和消费者应用。 1. **IBM MQ安装与配置**: 在开始编程之前,首先需要在本地或服务器...

    IBM MQ C++实例代码,连接MQ获取消息

    在这个场景中,"IBM MQ C++实例代码,连接MQ获取消息"是指使用C++编程语言与IBM MQ进行交互,实现连接到MQ服务器并获取消息的功能。这通常涉及到以下几个关键知识点: 1. **IBM MQ库**:首先,你需要IBM的MQ C++ API...

    JAVA IBM MQ 接收、发送

    本篇文章将深入探讨如何使用Java API与IBM MQ进行交互,包括接收和发送消息的实例。 首先,我们需要理解IBM MQ的基本概念。MQ系列是IBM提供的消息队列服务,它通过消息模型实现了应用之间的解耦。消息队列允许应用...

    IBM MQ 入门实例

    IBM MQ 入门实例 IBM MQ(Message Queue)是一种应用程序对应用程序的通信方法,应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。MQ 环境基础知识点: 1. 消息队列...

    IBM MQ 全部JAR包

    6. **com.ibm.mq.nojndi.jar**:在某些不支持或不需要JNDI(Java Naming and Directory Interface)的环境中,可以使用这个JAR包来直接实例化MQ连接工厂和队列,而不是通过JNDI查找。 在开发过程中,将这些JAR包...

    ibm MQ需要的jar

    IBM MQ(Message Queue)是IBM提供的一种企业级的消息中间件,用于在分布式系统中可靠地传输数据。在Java开发环境中,如果需要与IBM MQ进行交互,通常需要引入特定的IBM MQ Java API,这些API通常被打包成JAR(Java ...

    IBM MQ 8.0 Jar包

    IBM MQ(原名WebSphere MQ)是IBM提供的一款企业级的消息中间件,它允许应用程序之间进行可靠的信息交换,无论它们是在同一台计算机上还是在不同的网络上。在Java开发中,IBM MQ提供了丰富的API和库,使得开发人员...

    ibm mq tools.rar

    IBM MQ,全称为IBM WebSphere MQ,是一种企业级的消息中间件,它允许应用程序在不同的网络协议、操作系统和硬件之间安全、可靠地交换消息。在这个"ibm mq tools.rar"压缩包中,我们可以期待找到一系列IBM MQ的开发...

    IBM MQ 应答队列

    在这个例子中,我们创建了一个`MQQueueManager`实例连接到MQ服务器,然后设置了一个消息的报告类型为COA,并将其放入队列。当消息被成功处理时,IBM MQ将自动发送一个COA回执。 总的来说,IBM MQ的应答队列和报告...

    Java下操作IBM Websphere MQ的项目案例

    9. **实例化和测试**:在项目中,你可能会发现示例代码展示了如何创建一个简单的发送和接收消息的测试用例。这些示例会帮助你理解如何在实际应用中使用IBM MQ。 通过这个项目案例,你可以深入了解Java与IBM MQ的...

    IBMMQ配置SSL连接

    手把手教你怎么配置IBM WEBSPHERE MQ通过SSL连接,附详细步骤和实例代码

    IBM MQ的java相关jar

    总的来说,IBM MQ的Java相关JAR文件是Java开发者集成IBM MQ的关键工具,它们提供了丰富的API和功能,使得在Java应用中实现消息传递变得简单而高效。了解和熟练使用这些JAR文件,可以帮助开发者构建出健壮且可扩展的...

    C#IBM MQ.rar

    在IT行业中,IBM MQ(Message Queuing)是一种广泛使用的中间件技术,用于在不同系统、应用程序之间可靠地传输数据。本资源"**C# IBM MQ.rar**"显然包含与使用C#编程语言来操作IBM MQ相关的资料。让我们深入探讨这个...

    IBM MQ群集使用

    IBM MQ群集基本概念、群集基本使用、配置、实例,简单的使用技巧

    IBM MQ Demo

    IBM MQ Demo是演示如何使用IBM MQ进行通信的一个实例,旨在帮助开发者快速理解和应用此技术。 本Demo包含以下几个重要方面: 1. **Java项目**:IBM MQ支持多种编程语言,其中包括Java。Java项目通常包含MQ的客户端...

    IBM_MQ_JAVA程序例子

    在本主题中,我们重点关注IBM MQ与Java的集成,即"IBM_MQ_JAVA程序例子"。 首先,我们要理解的是IBM MQ的核心概念——队列管理器(Queue Manager),它是IBM MQ系统中的核心组件,负责处理消息的存储、路由和传递。...

    db2架包 IBM MQ

    IBM MQ(原名WebSphere MQ)则是IBM提供的一款消息中间件,它允许应用程序在不同的网络协议、操作系统和硬件平台上进行可靠的消息通信。这两个产品结合,可以构建高效、安全且可扩展的企业级数据处理和消息传输解决...

    技术资料MQHA,IBM MQ集群

    MQ HA通过集群技术,使得在单个MQ实例出现故障时,服务仍能继续运行,从而降低了业务中断的风险。 IBM MQ集群是MQ HA的核心,它将多个MQ队列管理器(Queue Managers)组织在一起,形成一个逻辑上的集群,这些队列...

Global site tag (gtag.js) - Google Analytics