在 MQRFH2 usr 文件夹中从 jms 设置自定义 属性

Setting from jms a custom property in MQRFH2 usr folder

我有一个多层应用程序,其中 jms 消息从 JmsTemplate (Spring) 发送到 WMB 流。 在 jms 消息中,我可以设置 MQMD headers 以设置监听 MQQueue 的 WMB 流所需的 meta-info。

我仍然应该做的事情是在 MQRFH2 usr 文件夹中的 JMS 消息中设置自定义 property/header,这对我造成了问题。我想在那里设置一个名为 MYKEY 的键和一个字符串值。

我在 jms 消息中做的是这样的:

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

但我收到错误消息:

JMSCC0049: The property name 'MQRFH2.usr.MYKEY' is not a valid Java(tm) identifier.; nested exception is com.ibm.msg.client.jms.DetailedMessageFormatException: JMSCC0049: The property name 'MQRFH2.usr.MYKEY' is not a valid Java(tm) identifier

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

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

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

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

其实你只需要这样做:

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

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

您收到的错误仅指出 属性 名称必须遵循 java 标识符命名规则,即此处不允许使用点。