提问者:小点点

带有Spring集成聚合器的ActiveMQ重新交付不起作用


我正在监听来自activeMq嵌入式代理队列的消息(比如原始消息)。此消息首先移动到通道,然后传递到路由器,并根据条件传递到聚合器。聚合器等待另一条消息,然后将部分或聚合消息传递给服务激活器类。

基于某些逻辑,activator类决定抛出异常,我们希望再次重新传递消息,因为我们已经配置了ActiveMQ broker端重新传递插件。

如果最大重试达到,没有聚合器消息被正确地重新传递并移动到DLQ,但如果聚合器进入图片,它没有被重新传递。我不确定,但我认为聚合消息与原始消息不一样,这就是为什么代理无法将该消息再次移动到队列中,因为消息是聚合的,而不是原始的。

是否有任何方法来处理这种情况,并启用重新交付或任何其他方法来将两个原始消息传递到聚合器,以便将它们再次移动到队列中,以便一次又一次地侦听,直到由代理移动到DQL?


共1个答案

匿名用户

你的问题还不清楚——如果消息到达聚合器,它将被存储用于聚合目的;从JMS交付的角度来看,它是成功的。

您不能追溯性地“拒绝”已经从代理的角度接受的JMS消息。

如果我了解您的需求,您将需要一个具有并发性的侦听器容器