【问题标题】:How to retrieve properties set by a JMS producer through Websphere MQ API?如何通过 Websphere MQ API 检索 JMS 生产者设置的属性?
【发布时间】:2017-01-12 00:43:14
【问题描述】:

我们正在尝试使用 Websphere MQ API 检索我们在消息中填充的 JMS 标头。

现在我正在使用 mq-all-client jar 来建立与 queueManagers 的连接。

getOptions.options = CMQC.MQGMO_NO_WAIT + CMQC.MQGMO_FAIL_IF_QUIESCING + CMQC.MQGMO_CONVERT;

我尝试通过以下方式检索 JMS 属性:

MQMessage message = new MQMessage();
queue.get(message, getOptions);
logger.info(message.getStringProperty("My_PROPERTY"));

我得到一个 null 。 有没有办法通过 MQ-allclients jar 建立连接并仍然检索消息上设置的 JMS 属性? 我可以通过 JMS 消费者检索属性,但我想通过 MQ API 获取它。

【问题讨论】:

    标签: java jms ibm-mq spring-jms


    【解决方案1】:

    logger.info(message.getStringProperty("My_PROPERTY"));

    嗯,那个“特定的”命名属性不存在。别忘了,属性关键字是区分大小写的。

    为什么不转储消息的所有命名属性,并查看消息中的确切属性?

    String propName;
    Enumeration<String> props = msg.getPropertyNames("%");
    if (props != null)
    {
       while (props.hasMoreElements())
       {
          propName = props.nextElement();
          System.out.println("---> propName="+propName+" : " + "value="+msg.getObjectProperty(propName));
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-11-15
      • 2019-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-16
      • 2012-08-27
      • 2014-09-19
      • 2012-03-10
      相关资源
      最近更新 更多