package com.quest.test; import java.io.IOException; import com.ibm.mq.MQException; 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.constants.CMQC; import com.quest.mq.MQTool; public class MQTest { /** * @param args * @throws MQException * @throws IOException * @throws InterruptedException */ public static void main(String[] args) throws MQException, IOException, InterruptedException { String queueManagerName = "QM1"; String hostname = "127.0.0.1"; int port = 1421; String channel = "SYSTEM.DEF.SVRCONN"; MQTool mqTool = new MQTool(queueManagerName, hostname, port, channel); MQQueueManager queueManager = mqTool.getQueueManager(); //accessTopic方法的第一个参数为topic string,第二个参数为topic name //程序会根据topic name的topic string 和你提供的topic string 组合得到消息发送到的topic string MQTopic topic = queueManager.accessTopic("", "a", CMQC.MQTOPIC_OPEN_AS_PUBLICATION, CMQC.MQOO_OUTPUT); System.out.println(topic.getName()); MQMessage msg = new MQMessage(); msg.writeString("ssssssssss"); MQPutMessageOptions pmo = new MQPutMessageOptions(); pmo.options = CMQC.MQPMO_ASYNC_RESPONSE; topic.put(msg,pmo); System.out.println(queueManager.getAsyncStatus().putSuccessCount); System.out.println(queueManager.getAsyncStatus().putFailureCount); queueManager.commit(); topic.close(); MQTopic topic2 = queueManager.accessTopic("price", "", CMQC.MQTOPIC_OPEN_AS_SUBSCRIPTION, CMQC.MQSO_CREATE); MQGetMessageOptions option = new MQGetMessageOptions(); topic2.get(msg, option); } }