如何在 IBM JMS MQ 的 MQM 标头中设置 userID,默认为 'mqm' 我需要在发送消息时将其设置为不同的用户 ID。我正在使用com.ibm.mqjms jar,应用程序部署在Tomcat上。
在应用程序中,您需要访问一些超出 JMS 规范的 IBM MQ 功能部件。
IBM MQv8 知识中心在"从 IBM MQ for JMS 应用程序读取和写入消息描述符"页面中记录了如何使用 IBM MQ Classes for JMS 设置 MQMD 属性
您必须将目标对象属性WMQ_MQMD_WRITE_ENABLED设置为 true,MQMD 属性的设置才能产生任何效果。然后,您可以使用消息的属性设置方法(例如 setStringProperty)为 MQMD 字段赋值。所有 MQMD 字段都公开,除了 StrucId 和版本;BackoutCount 可以读取,但不能写入。
此示例导致使用 MQMD 将消息放入队列或主题。用户标识符设置为"JoeBloggs"。 创建连接工厂、连接、会话、生产者、消息//...
// Create a destination // ... // Enable MQMD write dest.setBooleanProperty(WMQConstants.WMQ_MQMD_WRITE_ENABLED, true); // Optionally, set a message context if applicable for this MD field dest.setIntProperty(WMQConstants.WMQ_MQMD_MESSAGE_CONTEXT, WMQConstants.WMQ_MDCTX_SET_IDENTITY_CONTEXT); // On the message, set property to provide custom UserId msg.setStringProperty("JMS_IBM_MQMD_UserIdentifier", "JoeBloggs"); // Send the message // ...
为了使用PUT
queue
qmgr
+setid
OAM
WMQ_MDCTX_SET_IDENTITY_CONTEXT
除了要授予的任何常规许可权(例如:+connect +dsp
在qmgr
或+put
在queue
上)。