JAVA 连接IBM MQ的topic

本文介绍了如何使用Java连接到IBM MQ的Topic,包括在MQ上定义Topic的步骤以及Java代码示例,展示了发送和接收消息的过程。

1:java 连接ibm mq的topic首先需要在mq上建立topic,命令如下
     DEFINE TOPIC(TOPIC_xx_2) TOPICSTR(NBA/LAKER) DESCR('This is a TOPIC') PUB(ASPARENT) SUB(ENABLED)  WILDCARD(PASSTHRU)
至于队列管理器的创建见日志中的MQ队列管理建立日志
2:java连接程序



import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.MQTopic;
import com.ibm.mq.pcf.CMQC;

/**
 *
 *@company XX
 *@author: XX
 *@since: 2011-9-13
 *@version:1.0
 */
public class MQTopicTest {
    public static void main(String[] args){
        MQTopicTest temp = new MQTopicTest();
        temp.send();
        temp.receive();
    }
    public void send(){
        try{
            MQEnvironment.hostname = "172.17.102.2";
            MQEnvironment.channel = "CHANNEL_xx_2";
            MQEnvironment.port = 8080;
            MQEnvironment.CCSID = 1381;
            MQEnvironment.properties.put(CMQC.TRANSPORT_PROPERTY,
                    CMQC.TRANSPORT_MQSERIES);
            MQQueueManager queueManager= new MQQueueManager("QM_xx_2");
            MQTopic topic = queueManager.accessTopic("TOPIC_xx_2", "TOPIC_xx_2", CMQC.MQTOPIC_OPEN_AS_PUBLICATION, CMQC.MQOO_OUTPUT);
            MQPutMessageOptions option = new MQPutMessageOptions();
            option.options = CMQC.MQPMO_FAIL_IF_QUIESCING | CMQC.MQPMO_RETAIN;;
            MQMessage msg = new MQMessage();
            msg.expiry = 5*60*1000;
            msg.writeObject("test");
            msg.setStringProperty("test", "1");
            topic.put(msg,option);
            queueManager.commit();
        }catch(Exception e){
            System.out.println(e);
        }
    }
    public void receive(){
        try{
            MQEnvironment.hostname = "172.17.102.2";
            MQEnvironment.channel = "CHANNEL_xx_2";
            MQEnvironment.port = 8080;
            MQEnvironment.CCSID = 1381;
            MQEnvironment.properties.put(CMQC.TRANSPORT_PROPERTY,
                    CMQC.TRANSPORT_MQSERIES);
            MQQueueManager queueManager= new MQQueueManager("QM_xx_2");
            MQTopic topic = queueManager.accessTopic("TOPIC_xx_2", "TOPIC_xx_2", CMQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, CMQC.MQSO_CREATE);
            MQMessage msg = new MQMessage();
            MQGetMessageOptions option = new MQGetMessageOptions();
            topic.get(msg, option);       
            queueManager.commit();
            System.out.println(msg.getStringProperty("test"));
        }catch(Exception e){
            System.out.println(e);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值