java连接ibm mq

首先 打开 IBM websphere MQ 管理器 添加一个队列管理器 名称 叫MyTest

在队列管理气中的队列文件夹下 新建一个本地队列名称叫 LOCALQUEUE

在高级-》通道 下新建一个服务器连接通道 名称叫:SERVERCONN

在mytest右键 属性 查看编码字符集标识  中文默认在window下是 1381

在高级-》侦听器下查看连接的端口 默认是:1414

编写代码:


package com.mq;


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;


public class TestMQ {
static MQQueueManager qMgr;
static int CCSID=1381 ;
static String queueString="LOCALQUEUE";
public static void connect() throws MQException {
MQEnvironment.hostname = "127.0.0.1";
MQEnvironment.channel = "SERVERCONN";
MQEnvironment.port = 1414;
MQEnvironment.CCSID = CCSID;

qMgr = new MQQueueManager("myTest");


}
public static void sendMsg(String msgStr){   
        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;   
        MQQueue queue = null;   
        try {   
            //建立Q1通道的连接   
            queue = qMgr.accessQueue(queueString, openOptions, null, null,null);     
            MQMessage msg = new MQMessage();// 要写入队列的消息   
            msg.format = MQC.MQFMT_STRING;   
            msg.characterSet = CCSID;
            msg.encoding=CCSID;
           // msg.writeObject(msgStr); //将消息写入消息对象中   
            msg.writeString(msgStr);
            MQPutMessageOptions pmo = new MQPutMessageOptions();   
            msg.expiry = -1;    // 设置消息用不过期   
            queue.put(msg, pmo);// 将消息放入队列   
        } 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();   
                }   
            }   
        }   
    }   
       
    public static void receiveMsg()   
    {   
        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;   
        MQQueue queue = null;   
        try {   
            queue = qMgr.accessQueue(queueString, openOptions, null, null,null);   
            System.out.println("该队列当前的深度为:"+queue.getCurrentDepth());   
            System.out.println("===========================");   
            int depth = queue.getCurrentDepth();   
            //将队列的里的消息读出来   
            while(depth-->0)   
            {   
                MQMessage msg = new MQMessage();// 要读的队列的消息   
                MQGetMessageOptions gmo = new MQGetMessageOptions();   
                queue.get(msg, gmo);   
                System.out.println("消息的大小为:"+msg.getDataLength());   
                System.out.println("消息的内容:\n"+msg.readStringOfByteLength(msg.getDataLength()));   
                System.out.println("---------------------------");   
            }   
        } 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();   
                }   
            }   
        }   
    }   


public static void main(String[] args) throws MQException {
connect();
sendMsg("fuck 你大爷的");
receiveMsg();
}
}


转载于:https://www.cnblogs.com/liaomin416100569/archive/2012/02/13/9331408.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值