从jms设置MQRFH2 usr文件夹

时间:2018-04-11 10:05:06

标签: java header jms ibm-mq

我有一个多层应用程序,其中jms消息从JmsTemplate(Spring)发送到WMB Flow。 在jms消息中,我可以设置MQMD头,以便设置在MQQueue上侦听的WMB流所需的元信息。

我还应该做些什么,这对我造成的问题是在JMS消息中的 MQRFH2 usr 文件夹中设置自定义属性/标头。我想在那里设置一个名为MYKEY的键,其中包含一个字符串值。

我在jms消息中做的是:

message.setStringProperty(WMQConstants.JMS_IBM_MQMD_FORMAT," MQRFH2");  message.setStringProperty(" MQRFH2.usr.MYKEY"," testvalue");

但我收到了错误:

  

JMSCC0049:属性名称' MQRFH2.usr.MYKEY'不是有效的   Java(tm)标识符。嵌套异常是   com.ibm.msg.client.jms.DetailedMessageFormatException:JMSCC0049:The   属性名称' MQRFH2.usr.MYKEY'不是有效的Java(tm)标识符

有谁知道如何将名为MYKEY的MQRFH2 usr客户属性设置为usr文件夹中的jms消息到MQRFH2?

2 个答案:

答案 0 :(得分:0)

您没有在'jms'文件夹中设置我们自己的属性,而是将它们设置在'usr'文件夹中。

rfh2.setFieldValue("usr", "SomeNum", 123);
rfh2.setFieldValue("usr", "SomeText", "TEST");

有关在非JMS Java应用程序中创建A JMS(MQRFH2)消息的完整示例,请参见此处:http://www.capitalware.com/rl_blog/?p=4823

答案 1 :(得分:0)

实际上你只需要这样做:

message.setStringProperty("MYKEY", "testvalue");

此类调用将强制使用“MQRFH2”格式并在“usr”文件夹中创建属性“MYKEY”。

您收到的错误只表明属性名称必须遵循java标识符命名规则,即不允许使用点。