如何找到未传递的 JMS 消息的原始目的地。
Posted
技术标签:
【中文标题】如何找到未传递的 JMS 消息的原始目的地。【英文标题】:How to find the original destination for an undelivered JMS message. 【发布时间】:2016-07-06 08:42:02 【问题描述】:有没有办法获取未传递的 JMS 消息的原始地址队列。我正在使用 JBOSS HornetQ,发现我可以获取消息所在的 JMSMessageID 和时间戳以及当前队列(死信队列),但我想找到消息来自哪个队列。
【问题讨论】:
【参考方案1】:我是 HornetQ 的新手,但曾使用过 IBM MQ。
在将消息放入死信队列时,消息传递提供程序会添加一个标头,该标头将包含原始 MessageID、原始队列(消息从何处传递到应用程序)等信息。DLQ 处理程序使用此信息重新路由消息到它的原始队列。
您是否尝试过以下来自 DLQ 的消息?
SimpleString originalQueue = dlqMessage.getSimpleStringProperty(Message.HDR_ORIGINAL_QUEUE);
【讨论】:
以上是关于如何找到未传递的 JMS 消息的原始目的地。的主要内容,如果未能解决你的问题,请参考以下文章
如何确保来自 JMS 队列的消息被传递到外部 WebService (CXF)?
如何在 AUTO_ACKNOWLEDGE JMS 会话场景中模拟消息重新传递?