我在Java中使用传统的(com.ibm.mq.jar
)MQ应用程序进行测试。现在我需要使用该应用程序向JMS发送一些消息。当我尝试在MQ消息上设置任何JMS属性时,例如:
message.setStringProperty("JMSDestination", "queue:///" + queueName);
我总是得到错误:2471 - MQRC_PROPERTY_NOT_AVAILABLE
。如果我只是从属性名称中删除JMS
,它就有效。
是否可以直接在MQMessage
上设置JMS属性?在MQ级别上执行此操作的正确方法是什么?
顺便说一下。我在.NET中有相同的应用程序,可以通过这种方式设置JMS属性,所以我只是尝试在Java中使用相同的代码。
答案 0 :(得分:2)
不允许手动执行此操作。请使用JMS API设置JMS属性。
解释了MQ属性的限制here。
但有一件事是在该文档页面中有所涉及,
MQPUT调用不保证直接指定为MQRFH2元素的属性名称。
你或许可以在短期内解决这个问题。但是,似乎无法保证不会直接设置MQRFH2元素。