【问题标题】:IBM MQ Send and Receive MessageIBM MQ 发送和接收消息
【发布时间】:2016-04-08 01:27:24
【问题描述】:

我有以下代码来发送请求和接收来自 IBM MQ 的响应。我知道代码是特定于 IBM 实现的,但我正在尝试获得一些结果。稍后我将对代码进行更改以使其更通用。

       MQQueueConnectionFactory cf = new MQQueueConnectionFactory();
       cf.setHostName("xx.xxx.xx.xxx");
       cf.setPort(xxxx);


       cf.setIntProperty(WMQConstants.WMQ_CONNECTION_MODE, WMQConstants.WMQ_CM_CLIENT);

       cf.setQueueManager("Q_MANAGER");
       cf.setChannel("CHANNEL");


       MQQueueConnection connection = (MQQueueConnection) cf.createQueueConnection();

       MQQueueSession session = (MQQueueSession) connection.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
       MQQueue queue = (MQQueue) session.createQueue("queue:///REQ_Q");
       MQQueue respQueue = (MQQueue) session.createQueue("queue:///RESP_Q");

       MQQueueSender sender =  (MQQueueSender) session.createSender(queue);

       // set message properties
       TextMessage message = (TextMessage) session.createTextMessage("message to send");    
       message.setJMSReplyTo(respQueue);

       // Start the connection
       connection.start();
       sender.send(message);
       session.commit();

       String selecter = "JMSCorrelationID = '"+message.getJMSCorrelationID()+"'";
       MQQueueReceiver receiver = (MQQueueReceiver)session.createReceiver(respQueue, selecter);

       Message messageText;
      messageText = receiver.receive(5000);

消息发送成功。但是我得到 null 作为响应,实际上应该有一些响应。我错过了什么?

【问题讨论】:

  • 您采取了哪些步骤来确认响应队列中有消息并且可以使用该消息?您已经开始了连接,这是通常被遗忘的事情。!响应是否被置于未提交的事务下?

标签: java jms message-queue ibm-mq


【解决方案1】:

您如何知道其他应用程序向您发送了响应?你检查响应队列了吗?

String selecter = "JMSCorrelationID = '"+message.getJMSCorrelationID()+"'";

这到底是什么?其他应用程序团队是否告诉您响应消息的 CorrelID 将具有原始消息的 MessageID?如果是这样,则说明您使用了错误的值。

因此,您需要使用您发送给其他应用程序的消息中的 MessageID 值。即

String selecter = "JMSCorrelationID = '"+message.getJMSMessageID()+"'";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 2019-08-29
    • 2017-11-08
    • 1970-01-01
    • 2021-08-17
    • 2021-06-15
    • 2016-10-31
    相关资源
    最近更新 更多