从Java代码向IBM MQ发送和获取消息

时间:2018-04-04 21:17:02

标签: java queue jms message-queue ibm-mq

我正在学习IBM MQ。我需要使用最佳实践从Java代码中将消息发送到IBM MQ。

我提出了这个问题,但我不知道它是否是最佳方式:How to put and get IBM MQ messages without application server

请你给我一些提示,请?

3 个答案:

答案 0 :(得分:1)

IBM提供了MQ安装的示例代码,您应该查看这些代码。

还有一些示例用于为Java和JMS使用MQ类。 这些示例的源代码位于" MQ install dir" \ Windows下的工具。

答案 1 :(得分:0)

对我来说,这似乎是你半小时前提出的问题的重复。你似乎非常渴望得到答案,所以让我们看看这是否有助于你前进:

无论实现如何,消息队列处理的基本原理都是相同的。鉴于这种情况,鉴于您正在学习,我认为您将从查看此RabbitMQ教程中受益: RabbitMQ tutorial

RabbitMQ在本地计算机上免费且易于安装,因此您可以轻松使用它,并更轻松地理解它。本教程适合新手,整个过程都有很好的解释。

这应该让您了解所使用的方法和最佳实践。

我的理解是RabbitMQ的使用范围也比IBM MQ广泛得多,因此在掌握它时可以获得更多的支持。

一旦你学会了RabbitMQ的技术,我希望你可以将它们应用到IBM MQ,这可以让你回答你自己的原始问题。

祝你好运!

答案 2 :(得分:0)

public static void main(String [] args){

Connection connection = null;
Session session = null;
Destination destination = null;
Destination tempDestination = null;
MessageProducer producer = null;
MessageConsumer consumer = null;

try {

  JmsFactoryFactory ff = JmsFactoryFactory.getInstance(WMQConstants.WMQ_PROVIDER);
  JmsConnectionFactory cf = ff.createConnectionFactory();

  cf.setStringProperty(WMQConstants.WMQ_HOST_NAME, "localhost"); 
  cf.setIntProperty(WMQConstants.WMQ_PORT, 1414);
  cf.setStringProperty(WMQConstants.WMQ_CHANNEL, "SYSTEM.DEF.SVRCONN");
  cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);
  cf.setStringProperty(WMQConstants.WMQ_QUEUE_MANAGER, "QM1");

  connection = cf.createConnection();
  session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
  destination = session.createQueue("queue:///Q1");
  producer = session.createProducer(destination);

  long uniqueNumber = System.currentTimeMillis() % 1000;
  TextMessage message = session.createTextMessage("SimpleRequestor: Your lucky number yesterday was " + uniqueNumber);
  connection.start();
  producer.send(message);

  }catch (JMSException jmsex) {
 jmsex.printStackTrace();
}
}