2017-01-11 41 views
2

我們試圖使用Websphere MQ API檢索我們在消息中填充的JMS頭。如何通過Websphere MQ API檢索由JMS生產者設置的屬性?

現在我使用的MQ-所有客戶端罐子建立與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")); 

我得到一個。 有沒有一種方法可以通過MQ-allclients jar建立連接,並仍檢索消息上設置的JMS屬性? 我可以通過JMS Consumer檢索屬性,但我想通過MQ API獲取它。

回答

2

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)); 
    } 
}