Jms 在MQMD属性上使用消息选择器

Jms 在MQMD属性上使用消息选择器,jms,ibm-mq,Jms,Ibm Mq,我正在尝试对MQMD属性应用消息选择器ApplIdentityData 我可以看到此属性设置在消息上: JMS_IBM_MQMD_ApplIdentityData=some_value 我试过: dest.setBooleanProperty(WMQConstants.WMQ_MQMD_READ_ENABLED, true); dest.setIntProperty(WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT, WMQConst

我正在尝试对MQMD属性应用消息选择器
ApplIdentityData

我可以看到此属性设置在消息上:

JMS_IBM_MQMD_ApplIdentityData=some_value
我试过:

dest.setBooleanProperty(WMQConstants.WMQ_MQMD_READ_ENABLED, true);
dest.setIntProperty(WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT, 
                WMQConstants.WMQ_MDCTX_SET_ALL_CONTEXT);
/*1*/qsess.createReceiver(dest, "ApplIdentityData='some_value'");
/*2*/qsess.createReceiver(dest, "Root.MQMD.ApplIdentityData='some_value'");

它们没有拉入消息。

您需要使用选择器中的完全限定消息标题键。你可以试试这个

qsess.createReceiver(dest, "JMS_IBM_MQMD_ApplIdentityData='some_value'");

参考:

不接受完全限定的标题名称。原因:com.ibm.mq.MQException:JMSCMQ0001:WebSphere mq调用失败,com pcode为“2”(“MQCC_失败”)原因为“2459”(“MQRC_选择器语法错误”)。在com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:203)上,文档表明只有在MQMD中具有等效映射的JMSDeliveryMode、JMSPriority、JMSMessageID、JMSTIMSTAMP、JMSCorrelationID和JMSType属性可以用作消息选择器。不允许使用其他名称,如JMS_IBM_MQMD*。