【问题标题】:Junk Chars sent in message body when sending MQ message using jmsTemplate in Spring在 Spring 中使用 jmsTemplate 发送 MQ 消息时在消息正文中发送垃圾字符
【发布时间】:2019-10-02 00:36:47
【问题描述】:

我正在使用 jmsTemplate 将消息发送到 MQ 队列。当消费 MQ 应用程序收到消息时,他们能够在消息中看到如下所示的垃圾字符。我需要删除它们,因为它们会导致解析异常。

WS-OUTPUT-BUFFER:RFH �����*����4MQSTR   ������Ï´���∑∞_é¥û∞(Ω¥û|_Ω™æµ¬æ∞(Ω¥û∞_é¥û∑∑���ë∞|_Ωû∞ÖΩæûêÛµÛµÈä§É†âÉ
 Ñ<…§(â§+äàâäà†&<·∞ÖΩæû∞ä_Ωû⁄fl‡Â›Âfi„fi∞ä_Ωû∞Ñ•¥û§ÖÈ雵¥„fiŸé›µ¥„µfiŸfiŸfiŸfiŸfiŸfiŸfiŸfiŸ¥‡éfiflé›∂éé„„fi„⁄Ÿ∞Ñ•¥û∞Ö%¿û∞Ö
 %¿û∞|_Ωû���∫∞ÛΩºû∞ÑÑâ§Ö∑¥æ±•fiû„⁄Â∞ÑÑâ§Öû∞∂/•%§∂ÇÛ•µΩéµ∑¥æ±•fiû⁄∞∂/•%§∂ÇÛ•µΩéµû∞µ>é?¥•>è∑¥æ±•fiû›∞µ>é?¥•>èû∞ÛΩ
 ºû∑∑∑<?xml version="1.0" encoding="UTF-8"?>

【问题讨论】:

  • 确保您的 JMS 配置正确并匹配 MQ 配置(如消息类型等)。
  • 检查targetClient 设置。这默认为 JMS,它在消息上放置一个 RFH2 标头。较旧的消费应用程序可以将此视为消息正文的一部分。接收应用程序还可以指定MQGMO-NO-PROPERTIES 以使 MQ 剥离标头,它们需要 v7.0 或更高版本。
  • 接收应用程序能否处理 MQRFH2 标头?

标签: spring ibm-mq


【解决方案1】:

当接收应用程序无法处理 MQRFH2 标头时,我遇到了类似的问题。

因此,我必须在 JMS 目标对象上设置 TARGCLIENT(短 TC)属性和 WMQ_CLIENT_NONJMS_MQ(值 1),如下所示:

<Resource
        name="jms/YOUR.QUEUE.NAME"
        auth="Container"
        type="com.ibm.mq.jms.MQQueue"
        factory="com.ibm.mq.jms.MQQueueFactory"
        QU="YOUR.QUEUE.NAME"
        TC="1"/>

另见Exchanging messages between a JMS application and a traditional IBM MQ application

【讨论】:

    猜你喜欢
    • 2015-12-08
    • 2018-03-01
    • 1970-01-01
    • 2016-01-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多