在java客户端中设置MQ Header

时间:2010-07-21 11:13:05

标签: java jms ibm-mq

我希望在我的java客户端中设置MQ Header字段'PutApplName',并在JMSXAppID字段中作为JMS头访问它。网上的文档谈到了MQ Header字段被映射到JMS的文件。有没人试过这个?

1 个答案:

答案 0 :(得分:4)

您必须在客户端和服务器上使用WMQ v7以JMS可移植的方式执行此操作。由于v6是明年的生命终结,所以无论如何你都希望已经在v7上了。在v7中,可以使用消息属性访问所有MQMD属性。在v6中,有必要深入到WMQ特定的Java类中,它并不漂亮。

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

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

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

  

<强> JMS_IBM_MQMD_PUTAPPLNAME

     

public static final String   JMS_IBM_MQMD_PUTAPPLNAME

     

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

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