[英]Reply-To Queue is not updating in IBM MQ while putting message type as request
jmsTemplate.sendAndReceive("Queue2", session -> {
TextMessage msg = session.createTextMessage();
msg.setText(message);
msg.setJMSReplyTo(config.getReplyQ()); //Not updated but auto generated queue updated
msg.setJMSCorrelationID("asd_123584_lkj"); //Updated in Destination Queue
msg.setJMSType("MQSTR");
System.out.println("Message : "+msg);
return msg;
});
public Destination getReplyQ() throws JMSException {
MQQueue replyToQ = new MQQueue(queueManager, replyQueue);
Destination replyTo = (Destination) replyToQ;
return replyTo;
}
我读了一些文章说使用 JMS 会更新 RFH 但不会更新 MQMD 并且这个 Reply-To Queue 是 MQMD 的一部分,我没有找到正确的 class 来更新 MQMD header 并将消息发送到 MQ 并更新回复 -排队。
jmsTemplate.send(config.getQ(), session -> {
TextMessage msg = session.createTextMessage();
msg.setText(message);
msg.setJMSReplyTo(config.getReplyQ());
msg.setJMSCorrelationID("asd_123584_lkj");
System.out.println("Message : " + msg);
return msg;
});
上面的方法将设置 JMSReplyTo。
这里存在 sendAndReceive 的定义,它指出“临时队列是作为此操作的一部分创建的,并在消息的 JMSReplyTO header 中设置”
并忽略 RFH2 headersetTargetClient(WMQConstants.WMQ_CLIENT_NONJMS_MQ)可以像下面这样使用:
public Destination getQ() throws JMSException {
MQQueue replyToQ = new MQQueue(queueManager, queues);
replyToQ.setTargetClient(WMQConstants.WMQ_CLIENT_NONJMS_MQ);
Destination rt = (Destination) replyToQ;
return rt;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.