JVM 进程被终止时的 JMS onMessage 行为
JMS onMessage behaviour when JVM process is killed
当我在 onMessage 方法上收到一些消息,并且在我完成对消息的处理之前,我的 JVM 进程被终止时会发生什么?
在我的进程再次启动后重新传递消息?
它受制于您的 JMS 服务提供商,在 weblogic 的情况下它被写入物理文件,您可以重新推送 again.still 它有点复杂。可以在创建网桥时配置物理文件的位置。
过去我们也面临这个问题然后我们切换到 KAFKA 。在 KAFKA 中,消息会在发布者端保留一段时间,因此如果出现任何崩溃或问题,您可以再次致电发布者。
这是由 JMS 的确认部分专门控制的。不同的 JMS 提供者和客户端行为不同。
消息使用者必须确认消息已被接收和处理。然后 JMS 队列将考虑要使用的消息。
大多数供应商都有一个 AUTO_ACKNOWLEDGE 设置,它会在 onMessage() 代码无误执行后确认消息。
当我在 onMessage 方法上收到一些消息,并且在我完成对消息的处理之前,我的 JVM 进程被终止时会发生什么?
在我的进程再次启动后重新传递消息?
它受制于您的 JMS 服务提供商,在 weblogic 的情况下它被写入物理文件,您可以重新推送 again.still 它有点复杂。可以在创建网桥时配置物理文件的位置。
过去我们也面临这个问题然后我们切换到 KAFKA 。在 KAFKA 中,消息会在发布者端保留一段时间,因此如果出现任何崩溃或问题,您可以再次致电发布者。
这是由 JMS 的确认部分专门控制的。不同的 JMS 提供者和客户端行为不同。
消息使用者必须确认消息已被接收和处理。然后 JMS 队列将考虑要使用的消息。
大多数供应商都有一个 AUTO_ACKNOWLEDGE 设置,它会在 onMessage() 代码无误执行后确认消息。