从 jms 设置 MQRFH2 usr 文件夹中的定制属性



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

我仍然应该做的,这给我带来了问题,是在MQRFH2 usr文件夹中的 JMS 消息中设置自定义属性/标头。我想在那里设置一个名为 MYKEY 的键,其中包含一个字符串值。

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

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

但是我收到错误:

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

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

实际上你只需要这样做:

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

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

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

您不会在"jms"文件夹中设置我们自己的属性,而是将它们设置在"usr"文件夹中。

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

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

最新更新