服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

websphere mq传输环境搭建和测试

    在“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 a 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 a 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 a websphere mq error? 
            system.out.println("a websphere mq error occurred : completion code " + ex.completioncode + 
          " reason code " + ex.reasoncode); 
        }catch (ioexception ex) { 
            // was it a java buffer space error? 
            system.out.println("an error occurred whilst writing to the message buffer: " + ex); 
        }catch(exception ex){
            ex.printstacktrace();
        }
    }
}
-------------------------------------------------------------------------------------------
运行程序后,请在b机器的本地队列lq_88888888中检查是否有消息存在,如果有说明测试成功。
读者可以自行编写把消息从对方的本地队列读取出来的程序。
如果读者对以上的内容有任何疑问,可以和我联系,qianh@cntmi.com 
版权所有,严禁转载

参考资料:
1、《websphere mq system administration guide》third edition (may 2004),sc34-6068-02
2、《websphere mq using java》third edition (january 2004),sc34-6066-02
附件:mqtest.java(2k) 

扫描关注微信公众号