【问题标题】:Spring integration - message store recovery/resendSpring集成-消息存储恢复/重发
【发布时间】:2012-11-19 04:56:26
【问题描述】:

我对 jdbc 消息存储的行为有疑问。我注意到如果发生故障,例如,如果遵循以下顺序: 1)inbound-channel-adapter - 创建消息负载并将其发送到通道 2) 通道由 jms:outbound-channel-adapter 轮询有效负载,它在 JMS 队列中添加一个条目。我正在使用 ActiveMQ。

当我测试关闭 MOM 之类的情况时,我想将消息保留在消息存储中,但这不是默认行为。看起来 SI 处理通道中的有效负载,然后将其推出(从存储中删除)。我可以看到消息被插入到数据库的消息存储中。

我对消息存储功能的理解有误吗?我认为该消息会一直持续到成功运行。感谢您的任何反馈。

【问题讨论】:

    标签: spring jms integration activemq spring-jdbc


    【解决方案1】:

    您需要为此设置持久订阅。我认为大多数 SI JMS 组件都支持这一点。

    【讨论】:

    • 谢谢。如果代理关闭,那么无论主题或队列如何,它都会失败。无论如何,如果 activemq 或任何其他妈妈出现故障,那么重新发送消息的最佳做法是什么?我认为消息存储会为频道提供支持。
    • 使用纯 JMS,持久订阅正是您所需要的。如果发送了消息,但订阅了持久订阅的消费者处于离线状态,则代理将持久保存消息并在消费者再次可用时立即传递它们。我不知道如何使用 SI 存档,因为如果没有可用的使用者,某些组件会抛出异常。 SI 经常把一些简单的事情变得困难……如果你不需要 SI,我会用纯 JMS 代替(没有 spring 的 JMS-Template!JMS-API 非常简单,直接使用。)
    猜你喜欢
    • 2018-08-25
    • 2012-01-31
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多