IBM JMS MQ 在 MQM 标头中添加用户标识



如何在 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
// ...

为了使用PUTqueueqmgr+setidOAMWMQ_MDCTX_SET_IDENTITY_CONTEXT除了要授予的任何常规许可权(例如:+connect +dspqmgr+putqueue上)。

最新更新