2017-10-15 43 views

回答

0

在您的应用程序中,您需要访问JMS规范之外的某些IBM MQ功能。

IBM MQ V8知识中心的文档如何设置IBM MQ类MQMD属性JMS在网页“Reading and writing the message descriptor from an IBM MQ classes for JMS application

您必须设置WMQ_MQMD_WRITE_ENABLED到真正的目标对象属性MQMD属性来设定有什么影响。然后可以使用消息的属性设置方法(例如setStringProperty)将值分配给MQMD字段。除StrucId和Version之外,所有MQMD字段都是公开的; BackoutCount可以读取但不能写入。

此示例导致将消息放入MQMD.UserIdentifier设置为“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 
// ... 

为了使用WMQ_MDCTX_SET_IDENTITY_CONTEXT你将需要授予连接到IBM MQ用户队列管理器上都qmgr对象,并在queue在消息OAM许可+setidPUT到除任何正常的权限,你会授予(例如:+connect +dspqmgr+putqueue)。