2010-07-21 113 views
3

我期待在我的Java客户端中设置MQ头文件字段'PutApplName',并在JMS头文件中访问JMSXAppID字段中的相同内容。网上的文档讨论了MQ Header Fields被映射到JMS的文件。有没有人试过这个?在java客户端中设置MQ头文件

回答

4

您必须在客户端和服务器上使用WMQ v7以JMS便携的方式执行此操作。由于v6明年即将报废,无论如何,您已经有希望已经在v7上。在v7中,所有MQMD属性都可以使用消息属性进行访问。在第6版中,有必要将其分解为WMQ特定的Java类,但并不漂亮。

也就是说,请看看JMS fields and properties with corresponding MQMD fields它将所有MQMD字段映射到相应的JMS属性。

有一个写入MQMD字段并与WMQ客户端一起安装的示例程序。如果您安装了完整的WMQ客户端,而不是仅抓取jar文件,该程序将驻留在:C:\Program Files\IBM\WebSphere MQ\tools\jms\samples\simple\SimpleMQMDWrite.java

示例程序使用WMQConstants类,而不是直接对字符串值进行编码。你可以找到WMQConstants记录here。在常量内,您应该找到JMS_IBM_MQMD_PUTAPPLNAME here。此字段的JavaDoc的说:

JMS_IBM_MQMD_PUTAPPLNAME

公共静态最后弦乐 JMS_IBM_MQMD_PUTAPPLNAME

JMS_IBM_MQMD_PUTAPPLNAME属性名称。设置或获取发送消息的MQ应用程序名称 。使用 设置setStringProperty(JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME,);获取使用 getStringProperty(JmsConstants.JMS_IBM_MQMD_PUTAPPLNAME); 对消息对象有效。

请注意,应用程序必须通过运行在mqm组(不推荐)或使用setmqaut命令来授予+ setall权限。 + setall授权必须应用于QMgr和特定队列。

+0

我需要访问MQHeader对象字段esp。 'PutApplName' – hakish 2010-07-22 05:55:49

+0

好的,我已经扩展了答案来引导您完成它。 – 2010-07-22 11:00:55