MQ初体验

MQ以前没有接触过,但要面试的项目需要,网络上又有现成的代码,所以尝试了一下,过程如下。

PS:请多指教!

首先从网上下载了IBM Websphere MQ 的安装文件下来,地址:http://www.verycd.com/topics/127911/#theCon

 

打开Websphere MQ资源管理器,创建队列管理器:MQSI_SAMPLE_QM;

                                                队列:q1

                                                通道:BridgeChannel

创建JAVA类,关键代码如下:

 

	public void mqTest() {
		String mqManage = "MQSI_SAMPLE_QM";
		String qName = "q1";
		try{
			//************************************************************************************
			//对于客户端,首先设置队列管理器所在的主机(IP或主机名)
			MQEnvironment.hostname="172.19.0.28";
			//客户端连接的通道名字。它是个双向链接,使在客户端和队列管理器之间的MQI调用和回复成为可能
			MQEnvironment.channel="BridgeChannel";
			//消息编码(1381:GBK 1208:UTF)
			MQEnvironment.CCSID=1381;
			
			System.out.println("create a MQ manager:["+mqManage+"]");
			
			//创建MQQueueManager实例(该模式适用捆绑模式和客户机连接模式)
			MQQueueManager qMgr = new MQQueueManager(mqManage);
			//************************************************************************************
			//propertiesHashTable:环境设置对应的散列表
			//MQQueueManager qMgr = new MQQueueManager(mqManage,propertiesHashTable);
			//************************************************************************************
			
			System.out.println("Accessing queue:"+qName);
			
			int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;
			MQQueue queue = qMgr.accessQueue(qName, openOptions);
			//System.out.println("++++"+queue.getCurrentDepth());
			//定义消息
			MQMessage msg = new MQMessage();
			MQPutMessageOptions pmo = new MQPutMessageOptions();
			System.out.println("sending a message!!!");
			MQMessage rcvMessage = new MQMessage();
			for(int j=0;j<5;j++) {
				String str = "dove$";
				str = str + "*" + j;
				//清空消息,如不清空,新的字符存不进去
				msg.clearMessage();
				msg.writeUTF(str);
				System.out.println("&&^"+msg.getMessageLength());
				queue.put(msg,pmo);
				MQGetMessageOptions gmo = new MQGetMessageOptions();
				System.out.println("...getting!");
				queue.get(rcvMessage,gmo);
				String msgText = rcvMessage.readUTF();
				System.out.println("The Message Is:"+msgText);
			}
			System.out.println("close the queue");
			queue.close();
			System.out.println("disconnecting the queue manager");
			qMgr.disconnect();
			System.out.println("over");
		}catch (MQException e){
			System.out.println("MQException");
		}catch(java.io.IOException ex){
			System.out.println("IOException");
		}
	}

 

 

 执行结果如下:

create a MQ manager:[MQSI_SAMPLE_QM]
Accessing queue:q1
sending a message!!!
&&^9
...getting!
The Message Is:dove$*0
&&^9
...getting!
The Message Is:dove$*1
&&^9
...getting!
The Message Is:dove$*2
&&^9
...getting!
The Message Is:dove$*3
&&^9
...getting!
The Message Is:dove$*4
close the queue
disconnecting the queue manager
over

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值