【问题标题】:Spring Integration Poller dropping messagesSpring Integration Poller 丢弃消息
【发布时间】:2021-02-24 23:16:47
【问题描述】:

我想将从 jms 队列接收到的消息发送到 spring pub 子通道,以便将相同的消息转发到两个目的地。轮询器在直接频道上工作正常,但在发布到 pub 子频道时会丢弃消息。请让我知道我缺少什么。

<int-jms:inbound-channel-adapter connection-factory="connectionFactory" destination-name="queue-name" channel="jmsChannel" extract-payload="false" acknowledge="transacted">
        <int:poller max-messages-per-poll="5" fixed-delay="1000"></int:poller>
                </int-jms:inbound-channel-adapter>

<int:publish-subscribe-channel id="jmsChannel" task-executor="executor" />              
        
    <task:executor id="executor" pool-size="10"/>
    
<int-jms:outbound-channel-adapter  connection-factory="connectionFactory" channel="jmsChannel"  destination-name="sample-q" />

【问题讨论】:

    标签: spring-integration


    【解决方案1】:

    发布/订阅频道的默认行为类似于没有持久订阅的 JMS 主题;如果没有订阅者,则丢弃该消息。

    【讨论】:

    • 编辑了我的帖子以显示订阅者。有两个订阅者,我删除了一个进行测试,但即使有一个,也只有 5 条消息中的 2 条被发送出去。
    • 这对我来说毫无意义;调试日志永远是您的朋友。
    • 好的,我可以做到,我想知道我是否在做理论上不正确的事情,可能需要使用网桥将 jms 频道与 pubsub 连接起来。我将启用调试并继续使用这种方法。
    • 感谢您对此的回复。由于我在您回复后信任该解决方案,因此我尝试将其部署在服务器上,并通过 jndi 连接到 mq 服务器。在我的机器上,轮询器只会为 5 条消息中的 2 条打印“轮询导致消息”。在服务器上它工作得很好。我猜测我在机器中连接到 mq 的方式与服务器不同。我会尝试从这个角度来研究它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多