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

MQ 收,发 类

    博客分类:
  • MQ
阅读更多

jar 见附件

 

 

 

代码:

 

 package csmp.util;


import java.util.Date;
import org.w3c.dom.Document;
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;
import com.ibm.mq.MQQueueManager;
import com.ibm.ws.management.application.dfltbndngs.DOMParser;
import csmp.base.SystemInfo;
import csmp.util.XmlUtil;

public class MQUtil {  
   
    private static String qmName;   
    private static String qName;  
    private static MQQueueManager qMgr;  
    


    private static void initMq() throws Exception{
        String patch= SystemInfo.getMQFolder();
      

       
        DOMParser parser = new DOMParser();
        Document doc = parser.parse(patch);
       
        MQEnvironment.hostname=XmlUtil.getNodeValue(doc.getDocumentElement(), "HOSTNAME");           
           MQEnvironment.channel=XmlUtil.getNodeValue(doc.getDocumentElement(), "CHANNEL");  
           MQEnvironment.CCSID=Integer.parseInt(XmlUtil.getNodeValue(doc.getDocumentElement(), "CCSID"));                      
           MQEnvironment.port=Integer.parseInt(XmlUtil.getNodeValue(doc.getDocumentElement(), "PORT"));                  
           qmName = XmlUtil.getNodeValue(doc.getDocumentElement(), "QMNAME");                       
           qName = XmlUtil.getNodeValue(doc.getDocumentElement(), "SENDNAME");   
          
          
           try { 
              qMgr = new MQQueueManager(qmName);  
          } catch (MQException e) {  
              throw e;
          }
    }
   
   
    public static  void sendMessage(String message,String msgID) throws Exception{   
        try{ 
         initMq();
             int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;  
           
             if(qMgr==null || !qMgr.isConnected()){  
               qMgr = new MQQueueManager(qmName);  
           }  
            MQQueue queue = qMgr.accessQueue(qName, openOptions);            
            
            MQMessage putMessage = new MQMessage();   
            putMessage.messageId = msgID.getBytes();
           // putMessage.writeUTF(message); 
            putMessage.write(message.getBytes("UTF-8"));
          
            MQPutMessageOptions pmo = new MQPutMessageOptions();             
              
            queue.put(putMessage,pmo);   
            queue.close();  

        }catch(Exception e){  
         e.printStackTrace(System.out);
            throw e;
        }finally{  
            try {  
               qMgr.disconnect();  
           } catch (MQException e) {  
            throw e;
           }  
         }   
    }   
  
   
   
    public static void getMessage(String msgID) throws MQException {  
    //手动赋值
      MQEnvironment.hostname="192.168.1.123";           
         MQEnvironment.channel="SYSTEM.DEF.SVRCONN";           
         MQEnvironment.CCSID=1208;                      
         MQEnvironment.port=1414;                  
         qmName = "QM";                       
         qName = "LB.IN";                        
         try { 
            qMgr = new MQQueueManager(qmName);  
        } catch (MQException e) {  
            throw e;
        }
    
    
        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;  
        MQQueue queue = null;  
        try {  
            queue = qMgr.accessQueue(qName, openOptions, null, null,null);  
              
             
            int depth = queue.getCurrentDepth();  
            //将队列的里的消息读出来  
            while(depth-->0)  
            {  
                MQMessage msg = new MQMessage();// 要读的队列的消息  
                msg.messageId = msgID.getBytes();
               
                MQGetMessageOptions gmo = new MQGetMessageOptions();  
                queue.get(msg, gmo);   
               
        int len = msg.getDataLength();
        byte[] buf = new byte[len];
        msg.readFully(buf, 0, len);
       String strmsgCont = new String(buf, "UTF-8");
      
               
                System.out.println("消息的内容:\n"+strmsgCont);  
            }  
        } catch (MQException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (Exception e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
            if(queue!=null){  
                try {  
                    queue.close();  
                } catch (MQException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
            }  
        }  
    }
}

 

 

 

本地文件XML :

 

 

<?xml version="1.0" encoding="UTF-8"?>
<mq>

    <HOSTNAME>172.16.31.100</HOSTNAME>
    <queue-mgr-name>QM_NAME</queue-mgr-name>
    <QMNAME>QUEUE_NAME</QMNAME>
    <SENDNAME>CHANNEL_Name</SENDNAME>
    <CCSID>1208</CCSID>
    <PORT>1414</PORT>
</mq>

分享到:
评论

相关推荐

    ibm mq客户端与服务端互连

    类的方法来创建连接。 - 例如,通过`MQQueueManager qMgr = new MQQueueManager("QM1")`创建与队列管理器QM1的连接。 #### 三、连接测试 在完成了基本的配置后,下一步是对连接进行测试,确保一切正常。 1. **...

    利用IBMMQ实现远程消息安全传递

    为了确保这类系统的设计与开发达到预期的效果,选择一款稳定可靠的消息中间件尤为重要。IBM MQ(前身为 WebSphere MQ)作为业界领先的消息中间件之一,以其强大的异步消息处理能力和跨平台兼容性著称,被广泛应用于...

    MQ发送消息源代码

    1. **配置MQ连接**: 首先,我们需要创建一个`ConnectionFactory`对象,它是连接到MQ服务器的工厂类。我们需要提供MQ服务器的相关信息,如主机名、端口、队列管理器名称和通道名称。 2. **创建Connection**: 使用`...

    yii2-mq:适用于Yii2的消息服务组件

    他们下发任务的时候要么发个闭包,要么发个序列化的类,包括我之前做的一个队列组件也是这么做的,后来我看了阿里云的消息队列服务的开发者 文档我觉得,消息服务本质上就是个纯消息服务,没必要把任务也放里面,一...

    go语言实现使用activemq 收发消息

    在本文中,我们将深入探讨如何使用Go语言实现与...了解Go的并发模型和错误处理机制,以及STOMP协议的基本原理,将有助于你更高效地实现这类应用。记得在编写代码时遵循Go的最佳实践,确保代码的可读性和可维护性。

    基于SpringBoot整合RabbitMQ发送邮件通知

    3. **定义消息模型**:创建一个 Java 类作为消息实体,用于封装邮件通知的信息,如收件人、主题、正文等。 4. **创建 RabbitMQ 配置类**:定义一个配置类,使用 `@EnableRabbit` 注解启动 RabbitMQ 的自动配置,并...

    电信设备-一种基于GSM模块发短信的燃气检测与报警装置.zip

    在燃气检测部分,可能包含了一种高灵敏度的气体传感器,如MQ系列的热导式气体传感器,用于探测环境中燃气浓度的微小变化。一旦燃气浓度超过设定的安全阈值,GSM模块将被触发,向用户发送报警短信,提醒他们可能存在...

    系列之五:ORACLE EBS 系统主数据管理(A)

    ### ORACLE EBS 系统主数据管理精析 #### 一、EBS主数据概述(Master Data) 在Oracle E-Business Suite (EBS) 的系统架构中,“主数据”虽然不是一个官方术语,但其重要性和核心地位不容忽视。...

    纯java版本的ZeroMQ,可用在Android上

    ZeroMQ,又称为ØMQ或0MQ,是一个开源的多协议、多平台的轻量级消息中间件,它提供了一种灵活的、基于模式的消息传递机制,常用于构建分布式系统。 ZeroMQ的核心概念包括插座(Socket)、地址(Address)和消息...

    PHP使用ActiveMQ实例

    这个例子中,生产者通过`Stomp`类连接到指定的ActiveMQ服务器,并向队列`/queue/userReg`发送包含用户注册信息的消息。 **consumer1.php**和**consumer2.php**(消费者): ```php $stomp = new Stomp('tcp://...

    传感器技术与应用:任务5.1 家用燃气报警器的设计.ppt

    首先,我们了解到气敏传感器有多种类型,主要分为半导体和非半导体两大类。在实际应用中,半导体气敏传感器使用最为广泛。 接触燃烧式气敏传感器是其中一种常见的类型,它由气敏元件和铂电阻等组成。当可燃性气体与...

    Tedu5阶段RocketMQ中核心概念

    收件人的邮箱客户端作为消费者从MQ中获取邮件并显示给用户。 - **抢红包**:用户发出红包请求,系统将其封装为消息并发送至队列;抢红包的用户作为消费者监听队列并处理抢红包请求。 #### 2.3 入门案例工程 在...

    08_啥?我发到消息队列里面的数据怎么不见了?.zip

    在IT行业中,消息队列(Message Queue,MQ)是一种常用于分布式系统中的组件,它扮演着数据通信和异步处理的重要角色。标题“08_啥?我发到消息队列里面的数据怎么不见了?”暗示了一个常见问题:用户可能在使用消息...

    济宁晒图厂机械图纸目录.docx

    1. **联系方式**:客户可通过电话、邮件或直接来访的方式告知所需图纸的名称、型号、数量及收货地址等信息。 2. **付款方式**:支持邮局或银行汇款,并可将汇款凭证传真至该厂确认。 3. **发货流程**:收到汇款凭证...

    chat-server-gg:WebSocket扩展的基础

    (MQ) :发布/订阅模式的同级,当订户和发布者不需要同时与MQ进行交互时使用。 这意味着将消息放入队列中,以便稍后由接收方处理 :是一个中间计算机程序模块,它将消息从发送方的正式消息传递协议转换为接收方的...

    zeromq-protobuf-demo

    ZeroMQ,又称ØMQ或零MQ,是一个轻量级、高性能的开源消息库,它提供了多种消息模式,如发布/订阅、请求/响应、推送/拉取等。ZeroMQ的工作原理是将网络通信抽象为套接字,使得应用程序可以像操作本地进程间通信一样...

    java实现发送邮件

    可以通过`MimeMessage`设置发件人、收件人、主题和正文: ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("from@example.com")); message.setRecipients(Message....

Global site tag (gtag.js) - Google Analytics