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

从java代码向IBM MQ发送和获取消息,java,queue,jms,message-queue,ibm-mq,Java,Queue,Jms,Message Queue,Ibm Mq,我正在学习IBM MQ。我需要使用最佳实践从java代码向IBM MQ发送和获取消息 我问了这个问题,但我不知道这是否是最好的方式: 你能给我一些建议吗?对我来说,这好像是半小时前你问的问题的翻版。你似乎非常渴望得到答案,所以让我们看看这是否有助于推动你前进: 消息队列处理的基本原则是相同的,无论实现如何。鉴于这种情况,鉴于您正在学习,我认为您将受益于本RabbitMQ教程: RabbitMQ是免费的,易于安装在本地计算机上,因此您可以使用它,并更容易地理解它。本教程适合新手,通篇都有很好的解

我正在学习IBM MQ。我需要使用最佳实践从java代码向IBM MQ发送和获取消息

我问了这个问题,但我不知道这是否是最好的方式:


你能给我一些建议吗?

对我来说,这好像是半小时前你问的问题的翻版。你似乎非常渴望得到答案,所以让我们看看这是否有助于推动你前进:

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

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

这将使您对所使用的方法和最佳实践有一个很好的了解

据我所知,RabbitMQ的使用范围也比IBM MQ广泛得多,因此在使用它时,您将能够获得更多的支持

一旦您了解了RabbitMQ的技术,我希望您能够将它们应用到IBM MQ,这将使您能够回答自己的原始问题


祝你好运

IBM提供了MQ安装的示例代码,您应该研究这些示例代码

还有一些用于Java和JMS的MQ类的示例。 这些示例的源位于Windows上的“MQ安装目录”\Tools下。

public static void main(字符串[]args){


可能的重复项我知道它们是不同的。它们有何不同?所有的jar都将在com.ibm.mq.allclient.jar中提供,这个jar位于MQInstallationDirectory/java/lib文件夹中。是否可以设置消息id您发送的消息类型?如果是映射消息,您可以使用自己的值设置id以区分在消息之间。否则,您也可以在Web Sphere MQ控制台中看到每种消息类型的消息id。如果您需要代码,我将发布代码,我认为RabbitMQ和IBM MQ之间的java连接非常不同。而RabbitMQ仅支持amqp、IBM MQ支持程序或ts amqp、本地应用绑定、IBM MQ Proprity客户端连接等等。RabbitMQ是轻量级的,但IBM MQ有更多的功能。因此,如果有人想利用这些功能,他们必须编写一个与RabbitMQ非常不同的代码。但我支持您使用此免费软件工具,以了解整体消息传递和排队的要点作品
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();
}
}