【问题标题】:JMS onMessage behaviour when JVM process is killedJVM 进程被杀死时的 JMS onMessage 行为
【发布时间】:2015-06-30 04:43:20
【问题描述】:

当我在 onMessage 方法上收到一些消息并且在我完成消息处理之前,我的 JVM 进程被杀死时会发生什么?

在我的进程再次启动后,消息是否重新传递?

【问题讨论】:

    标签: java jms


    【解决方案1】:

    这由 JMS 的确认部分专门控制。不同的 JMS 提供者和客户端行为不同。

    消息消费者必须确认消息已被接收和处理。然后,JMS 队列将考虑使用该消息。

    大多数提供程序都有一个 AUTO_ACKNOWLEDGE 设置,该设置将在 onMessage() 代码无错误执行后确认消息。

    【讨论】:

      【解决方案2】:

      这取决于你的 JMS 服务提供商,如果是 weblogic,它被写入物理文件,你可以再次重新推送。但它并不复杂。创建网桥时可以配置物理文件的位置。

      过去我们也面临这个问题,然后我们切换到 KAFKA 。在 KAFKA 中的消息会在发布者端保留一段时间,因此如果出现任何崩溃或问题,您可以再次调用发布者。

      【讨论】:

        猜你喜欢
        • 2010-12-08
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        • 2017-07-07
        • 1970-01-01
        • 2010-12-02
        • 1970-01-01
        相关资源
        最近更新 更多