gpt4 book ai didi

ibm-mq - IBM Mq 消息头

转载 作者:行者123 更新时间:2023-12-02 06:56:17 31 4
gpt4 key购买 nike

我正在向远程队列发送消息,但我无法控制该队列。

我发送一个 xml 文件作为消息,但是当应用程序读取消息时,它会得到一个消息头,例如

<mcd><Msd>jms_text</Msd></mcd>  \0\0\0l<jms><Dst>queue:///TEST</Dst><Tms>1281475843707</Tms><Cid></Cid><Dlv>1</Dlv></jms>

我不希望出现此消息 header ,我发送此消息的代码如下:

Properties props = new Properties();
props.setProperty("java.naming.factory.initial",this.initialFactory);
props.setProperty("java.naming.provider.url", url);

Context context = new InitialContext(props);

QueueConnectionFactory qcf = (QueueConnectionFactory) context.lookup(this.context);
qConn = qcf.createQueueConnection();
queue = (Queue)context.lookup(name);
qSession = qConn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
qConn.start();
QueueSender send = qSession.createSender(queue);
String text = "My xml file";
TextMessage tm = qSession.createTextMessage(text);
send.send(tm);
send.close();

如何避免这种情况?

最佳答案

您似乎正在向非 jms 目标发送 jms 消息。消息在目的地是如何被消费的?它是否期待 native MQ 消息?接收方不理解存储 JMS header 属性的 MQRFH2 header 。

您应该配置目标以理解 jms,或者您可以执行类似以下操作来告诉 mq jms 您的接收者是非 jms 客户端。

((com.ibm.mq.jms.MQQueue) queue).setTargetClient(JMSC.MQJMS_CLIENT_NONJMS_MQ);

关于ibm-mq - IBM Mq 消息头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3493227/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com