【问题标题】:Can message we are pushing to a Queue be moved to Active MQ Dead Letter Queue (DLQ) if any exception/connection error occur?如果发生任何异常/连接错误,我们推送到队列的消息是否可以移动到活动 MQ 死信队列 (DLQ)?
【发布时间】:2015-12-13 04:43:49
【问题描述】:

我正在使用 Spring JmsTemplate 向 ActiveMQ 队列发送/推送消息。 我知道在侦听器开始处理该消息并发生任何异常后,该消息将被视为毒丸并移动到活动 mq 的默认 DLQ。

如果在发送时出现任何连接错误或任何其他错误,在发送/推送该消息到队列时是否同样可能(即该消息将移动到默认死信队列)?

例如-

public void push(){

jmsTemplate.send(test.Queue, "此消息来自客户端"); //如果此处发生任何异常,我希望放置此消息 在 DLQ }

请问有可能吗?

【问题讨论】:

    标签: activemq spring-jms jmstemplate


    【解决方案1】:

    如果您无法连接以将其发送到主队列,则您可能也无法连接以将其发送到 DLQ。

    【讨论】:

    • 我同意你所说的加里。但考虑一个 MQ 提供程序/服务器正在运行但有人已重命名队列@提供程序但应用程序客户端仍在尝试使用现有名称连接到队列的情况。在这种情况下,是否可以将消息移动到 DLQ ?
    • 您可以使用 Spring Retry 来包装对模板的调用,当重试用尽时,尝试将消息发送到其他地方。
    • 是的,我们可以使用 Spring Retry,但这会将消息移动到其他队列/位置,我们需要编写该逻辑。但正如我在收听任何消息时提到的那样,任何消息都会自动移动到 DLQ,如果可能的话,我希望进行推送操作。
    • 否;这是不可能的。
    • 感谢加里的帮助和建议
    猜你喜欢
    • 2021-08-01
    • 2011-03-15
    • 2011-06-02
    • 2020-07-31
    • 2020-11-15
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 2014-08-30
    相关资源
    最近更新 更多