WebShpere MQ 配置与测试

FROM:http://blog.sina.com.cn/s/blog_49a75433010008d5.html

在“WebSphere MQ程序设计初探”一文中,讨论了从MQ队列管理器的本地队列中放置和读出消息的程序,本文主要通过两台机器,搭建MQ消息传输的环境,并编写测试程序进行测试。

第一、准备工作
准备2台Win2000环境(XP也可),通过以太网连通。
机器A:代码为00000000,IP地址为:10.1.1.1
机器B:代码为88888888,IP地址为:10.1.1.2
安装MQ  5.3

第二、创建MQ对象
A机器上:
1、打开“WebSphere  MQ资源管理器”,新建队列管理器,名称为QM_00000000,其余采用默认设置;
2、在QM_00000000队列管理器中创建本地队列,名称为LQ_00000000;
3、创建传输队列,名称为XQ_88888888(新建时选择“本地队列”,将“用法”设置为“传输”);
4、创建远程队列定义,名称为RQ_88888888,指定远程队列名称为LQ_88888888,远程队列管理器名称为QM_88888888,传输队列名称为XQ_88888888;
5、创建发送方通道,名称为00000000.88888888,传输协议为TCP/IP,连接名称为10.1.1.2(1414),传输队列为XQ_88888888;
6、创建接受方通道,名称为88888888.00000000,采用默认设置;
7、创建服务器连接通道,名称为DC.SVRCONN,采用默认设置(该通道主要给后面的测试程序使用)。
B机器和A机器上的操作一样,只是命名不同,如下:
1、打开“WebSphere  MQ资源管理器”,新建队列管理器,名称为QM_88888888,其余采用默认设置;
2、在QM_88888888队列管理器中创建本地队列,名称为LQ_88888888;
3、创建传输队列,名称为XQ_00000000(新建时选择“本地队列”,将“用法”设置为“传输”);
4、创建远程队列定义,名称为RQ_00000000,指定远程队列名称为LQ_00000000,远程队列管理器名称为QM_00000000,传输队列名称为XQ_00000000;
5、创建发送方通道,名称为88888888.00000000,传输协议为TCP/IP,连接名称为10.1.1.1(1414),传输队列为XQ_00000000;
6、创建接受方通道,名称为00000000.88888888,采用默认设置;
7、创建服务器连接通道,名称为DC.SVRCONN,采用默认设置。

第三、消息测试
在A、B机器上分别启动其发送方通道,正常情况通道状态应为“正在运行”。
通过如下测试程序进行测试,文件名为:MQTest.java,在机器A上进行运行(如在B上运行请读者自行适当修改)。
-------------------------------------------------------------------------------------------
import  java.io.IOException;
import  java.util.Hashtable;

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;

public  class  MQSample{
        //定义队列管理器和队列的名称 
        private  static  String  qmName  "QM_00000000"; 
        private  static  String  qName  "RQ_88888888";
       
        private  static  MQQueueManager  qMgr; 
        private  static  Hashtable  properties  new  Hashtable();

        public  static  void  main(String  args[])  {
                try  {
                        properties.put("hostname",  "10.1.1.1");
                        properties.put("port",  new  Integer(1414));
                        properties.put("channel",  "DC.SVRCONN");
                        properties.put("CCSID",  new  Integer(1381));
                        properties.put("transport","MQSeries");
                       
                        //  Create  connection  to  the  queue  manager 
                        qMgr  new  MQQueueManager(qmName,properties); 
                        //  Set  up  the  options  on  the  queue  we  wish  to  open... 
                        int  openOptions  16;
                        //  Now  specify  the  queue  that  we  wish  to  open, 
                        //  and  the  open  options... 
                        MQQueue  remoteQ  qMgr.accessQueue(qName,  openOptions); 
                       
                        //  Define  simple  WebSphere  MQ  message,  and  write  some  text  in  UTF  format.. 
                        MQMessage  putMessage  new  MQMessage(); 
                        putMessage.writeUTF("Test"); 
                        //  specify  the  message  options... 
                        MQPutMessageOptions  pmo  new  MQPutMessageOptions(); 
                        //  accept  the  defaults,  same  as  MQPMO_DEFAULT
                        //  put  the  message  on  the  queue 
                        remoteQ.put(putMessage,pmo); 
                        System.out.println("Message  has  been  input  into  the  Remote  Queue");

                        //  Close  the  queue... 
                        remoteQ.close(); 
                        //  Disconnect  from  the  queue  manager 
                        qMgr.disconnect(); 
                }catch  (MQException  ex) 
                        //  If  an  error  has  occurred  in  the  above,  try  to  identify  what  went  wrong 
                        //  Was  it  WebSphere  MQ  error? 
                        System.out.println("A  WebSphere  MQ  error  occurred  Completion  code  ex.completionCode 
                   "  Reason  code  ex.reasonCode); 
                }catch  (IOException  ex) 
                        //  Was  it  Java  buffer  space  error? 
                        System.out.println("An  error  occurred  whilst  writing  to  the  message  buffer:  ex); 
                }catch(Exception  ex){
                        ex.printStackTrace();
                }
        }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值