Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActiveMQ多次处理消息_Java_Spring Boot_Jms_Activemq - Fatal编程技术网

Java ActiveMQ多次处理消息

Java ActiveMQ多次处理消息,java,spring-boot,jms,activemq,Java,Spring Boot,Jms,Activemq,我想在ActiveMQ中设置重新交付策略。 我已将重试尝试设置为3次,之后消息应发送到死信队列。然而,我注意到,虽然处理消息的3次尝试(发生异常时)被处理了多次。为什么? 第一次处理-消息被处理13次(1次常规处理,12次逐个重新处理)(每次都会发生异常,因此消息最终被发送回队列-在第13次结束时) 第二次处理-消息被处理5次 第三次-消息被重新处理4次 为什么要进行额外的再加工?我认为,当消息被发送回队列时,我的侦听器应该得到这条消息,并再次尝试只处理这条消息一次。哪个参数负责此重新处理?很可

我想在ActiveMQ中设置重新交付策略。 我已将重试尝试设置为3次,之后消息应发送到死信队列。然而,我注意到,虽然处理消息的3次尝试(发生异常时)被处理了多次。为什么?

  • 第一次处理-消息被处理13次(1次常规处理,12次逐个重新处理)(每次都会发生异常,因此消息最终被发送回队列-在第13次结束时)
  • 第二次处理-消息被处理5次
  • 第三次-消息被重新处理4次

  • 为什么要进行额外的再加工?我认为,当消息被发送回队列时,我的侦听器应该得到这条消息,并再次尝试只处理这条消息一次。哪个参数负责此重新处理?

    很可能需要将
    jms.redeliveryPolicy.maximumRedeliveries=0
    添加到连接URI。默认情况下,ActiveMQ客户端将在客户端重试。这一切都很好,但是如果您已经将代理配置为处理重试,那么您通常不希望客户端也这样做。只需添加选项。有关选项本身,请参阅。

    您很可能需要将
    jms.redeliveryPolicy.maximumRedeliveries=0
    添加到连接URI中。默认情况下,ActiveMQ客户端将在客户端重试。这一切都很好,但是如果您已经将代理配置为处理重试,那么您通常不希望客户端也这样做。只需添加选项。有关选项本身,请参见。

    您是对的!我没有设置URI参数,而是在Java代码中进行了更改:ActiveMQConnectionFactory获取RedeliveryPolicy对象。我们可以直接在这个对象上设置这个参数。我设置为0,所有其他设置都是从我的XML ActiveMQ设置中获取的!谢谢!你是对的!我没有设置URI参数,而是在Java代码中进行了更改:ActiveMQConnectionFactory获取RedeliveryPolicy对象。我们可以直接在这个对象上设置这个参数。我设置为0,所有其他设置都是从我的XML ActiveMQ设置中获取的!谢谢!