【问题标题】:Setting MQ Header in java client在 Java 客户端中设置 MQ 标头
【发布时间】:2010-07-22 18:59:42
【问题描述】:

我希望在我的 java 客户端中设置 MQ 标头字段“PutApplName”,并在 JMSXAppID 字段中将其作为 JMS 标头访问。网上的文档讨论了 MQ 标头字段被映射到 JMS 的。有没有人试过这个?

【问题讨论】:

    标签: java jms ibm-mq


    【解决方案1】:

    您必须在客户端和服务器上使用 WMQ v7 才能以 JMS 可移植方式执行此操作。由于 v6 将于明年停止使用,因此希望您已经在 v7 上。在 v7 中,所有 MQMD 属性都可以使用消息属性进行访问。在 v6 中,必须降级到特定于 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); 对 Message 对象有效。

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

    【讨论】:

    • 我需要访问 MQHeader 对象字段,尤其是。 'PutApplName'
    • 好的,我已经扩展了答案以引导您完成它。
    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    相关资源
    最近更新 更多