现在服务器上装好IBM MQ V7 ,建立队列管理器QM1 并监听在1414端口。
PUB程序:
package com.jn.test;
import javax.jms.Session;
import javax.jms.TextMessage;
import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQTopic;
import com.ibm.mq.jms.MQTopicConnection;
import com.ibm.mq.jms.MQTopicConnectionFactory;
import com.ibm.mq.jms.MQTopicPublisher;
import com.ibm.mq.jms.MQTopicSession;
public class MQPublisher {
public static void main(String[] args) {
try {
MQTopicConnectionFactory tcf = new MQTopicConnectionFactory();
tcf.setQueueManager("QM1");
tcf.setBrokerQueueManager("QM1");
tcf.setHostName("9.186.102.180");
tcf.setPort(1414);
tcf.setChannel("SYSTEM.DEF.SVRCONN");
tcf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
tcf.setBrokerVersion(JMSC.MQJMS_BROKER_V1);
tcf.setBrokerPubQueue("SYSTEM.BROKER.DEFAULT.STREAM");
tcf.setCCSID(1208);
MQTopicConnection tConn = (MQTopicConnection) tcf.createTopicConnection();
MQTopicSession topicSession = (MQTopicSession) tConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
MQTopic topic = (MQTopic) topicSession.createTopic("SampleTopic");
MQTopicSession pubSession = (MQTopicSession) tConn.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
MQTopicPublisher publisher = (MQTopicPublisher) pubSession.createPublisher(topic);
TextMessage message = pubSession.createTextMessage();
message.setText("This is a message ...");
publisher.publish(message);
} catch (Exception e) {
e.printStackTrace();
}
}
}
SUB程序
package com.jn.test;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicSession;
import javax.jms.TopicSubscriber;
import com.ibm.mq.*;
import com.ibm.mq.jms.*;
public class MQBrokerSub implements MessageListener {
private MQTopicConnection connection;
private MQTopicSession session;
private MQTopicSubscriber subscriber;
private void disconnect() throws JMSException {
subscriber.close();
session.close();
connection.stop();
connection.close();
System.out.println("Subscriber stopped.");
}
private void connect() throws JMSException {
MQTopicConnectionFactory tcf = new MQTopicConnectionFactory();
tcf.setQueueManager("QM1");
tcf.setBrokerQueueManager("QM1");
tcf.setHostName("9.186.102.180");
tcf.setPort(1414);
tcf.setChannel("SYSTEM.DEF.SVRCONN");
tcf.setCCSID(1208);
tcf.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
tcf.setBrokerVersion(JMSC.MQJMS_BROKER_V1);
System.out.println("1");
connection = (MQTopicConnection) tcf.createTopicConnection();
System.out.println("2");
session = (MQTopicSession)connection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
System.out.println("3");
Topic topic = (Topic)session.createTopic("SampleTopic"); //scribble/coords
System.out.println("4");
subscriber = (MQTopicSubscriber)session.createSubscriber(topic);
System.out.println("5");
subscriber.setMessageListener(this);
System.out.println("6");
connection.start();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MQBrokerSub mqBS = new MQBrokerSub();
try {
mqBS.connect();
System.in.read();
mqBS.disconnect();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void onMessage(Message message) {
// TODO Auto-generated method stub
try {
TextMessage tMessage = (TextMessage) message;
String text;
text = tMessage.getText();
System.out.println(
"Received message <"
+ new String(text.getBytes("ISO-8859-1"),"GBK") //ISO 8859-1 GB18030
+ "> with ID <"
+ message.getJMSMessageID()
+ ">");
} catch (JMSException e) {
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
先运行sub程序 再运行pub程序 就可以看到效果了。
相关推荐
MQ7.0是IBM消息队列(Message Queue)的一个重要版本,相较于MQ6.1,它引入了许多新特性和改进,特别是在发布/订阅(pub/sub)功能方面。发布/订阅是一种异步消息传输机制,允许应用程序(发布者)在不关心具体接收...
1. **安装程序**:WS_MQ_V7.5.0.2_TRIAL_FOR_WINDOWS_ML.rar这个压缩包包含了IBM MQ v7.5.0.2在Windows上的安装程序。安装过程中,你需要遵循一系列步骤,包括接受许可协议、选择安装类型(如客户机、服务器或开发...
WebSphere MQ,原名MQSeries,是IBM开发的一种企业级的消息传递系统,它允许应用程序之间通过网络进行可靠的信息交换,无论这些程序运行在何种操作系统上。本教程将深入浅出地介绍这一核心概念。 首先,WebSphere ...
4. **消息模型**:包括点对点(P2P)和发布/订阅(Pub/Sub)两种,前者基于队列,后者基于主题。 5. **安全性**:通过用户标识、访问控制列表(ACLs)和认证机制确保消息的安全传输。 **WebSphere MQ V6.0的主要...
本项目"jms-spring3-ibmmq"是关于如何在Spring 3.2.x框架下集成JMS 1.0.2版本和IBM MQ的一个实例教程。 1. **JMS 1.0.2 知识点**: - JMS 是Java平台用于企业级应用间消息传递的API,支持点对点(Point-to-Point,...
- **发布/订阅(Pub/Sub)**:消息发布到一个主题,多个订阅者可以接收到这些消息,适用于广播通知。 8. **性能优化**: - 使用批处理(batching)发送大量消息,减少网络开销。 - 选择合适的队列深度和缓存策略...
它提供了两种消息传递模式:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。点对点模式基于队列,而发布/订阅模式基于主题。JMS 1.1统一了这两种模式,使得开发者可以更灵活地选择消息...
WebSphere MQ支持两种主要的消息传递模式:点对点(PTP)和发布/订阅(Pub/Sub)。PTP模式下,每个消息只有一个接收者;Pub/Sub模式允许多个订阅者接收同一消息。 #### 3.2 协同工作 WebSphere MQ中的队列管理器...
- 发布/订阅模型(Pub/Sub):一个消息可以被多个消费者消费,适合一对多广播。 4. **消息确认机制**: - 确认(ACK):确保消息已被正确处理,防止丢失或重复。 - 模式如:自动ACK、手动ACK等。 5. **事务支持...
4. **消息模型**:MQ支持多种消息模型,包括点对点(P2P)和发布/订阅(Pub/Sub)。P2P模型中,一个消息被一个消费者接收;而在Pub/Sub模型中,一个消息可以被多个订阅者接收。 5. **消息格式**:MQ支持多种消息...
7. **MQ工具**:管理和监控MQ的工具,如IBM MQ Explorer、RabbitMQ Management Console等,可以帮助开发者调试、监控队列状态、查看消息流转等。 8. **适配器(sapadepter)**:适配器是连接不同系统的关键,...
1. **消息模型**:MQ支持多种消息模型,如点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。P2P模型中,每个消息只有一个消费者,而Pub/Sub模型允许多个消费者订阅同一主题,实现广播式...
【标题】:“WebSphere MQ”是IBM开发的一种高级消息队列协议和软件产品,它允许应用程序之间通过网络发送和接收消息。在企业级系统集成和分布式计算环境中,WebSphere MQ扮演着关键角色,确保数据传输的可靠性和...
MQ中间件的核心特点是提供了可靠的、基于消息队列的消息传递服务,支持多种消息传输模式,包括点对点(P2P)和发布/订阅(Pub/Sub)模式。 #### 三、MQ中间件的关键特性 1. **可靠性**:MQ中间件能够确保消息的安全...
IBM WebSphere MQ(简称WMQ或MQ)是IBM公司推出的一种中间件,它提供了一种可靠、高效且灵活的消息传递机制。WMQ允许应用程序在不同的操作系统、网络协议和应用程序之间交换消息,无论这些应用程序是否同时运行。在...
JMS提供了两种主要的消息模型:点对点(Point-to-Point, P2P)和发布/订阅(Publish/Subscribe, Pub/Sub)。 在WebSphere MQ中,我们可以通过以下步骤创建一个简单的JMS发送消息的实例: 1. **配置WebSphere MQ**...
JMS支持两种消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 **Websphere MQ** IBM Websphere MQ,通常简称为MQ,是一个功能强大的消息中间件,它允许不同系统之间的应用程序...
JMS是Java平台上的标准接口,用于访问消息队列,它提供了两种主要的消息模型:点对点(Point-to-Point,P2P)和发布/订阅(Publish/Subscribe,Pub/Sub)。 点对点模型中,消息从一个生产者发送到一个队列,然后由...
JMS提供两种消息模型:点对点(Point-to-Point, PTP)和发布/订阅(Publish/Subscribe, Pub/Sub)。 MQ(例如IBM WebSphere MQ)是实现JMS的一种具体实现,它是一个高性能、可靠的跨平台消息传递系统。MQ允许在不同...