JVM进程被终止时的JMS onMessage行为

时间:2015-06-29 20:09:09

标签: java jms

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

我的流程再次启动后会重新传递消息吗?

2 个答案:

答案 0 :(得分:2)

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

消息使用者必须确认已收到并处理该消息。然后,JMS队列将考虑要使用的消息。

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

答案 1 :(得分:0)

它受JMS服务提供商的约束,如果将weblogic写入物理文件,则可以再次重新推送。但这有点复杂。创建桥接时可以配置物理文件的位置。

过去我们也面临这个问题然后我们切换到KAFKA。在KAFKA中,邮件在发布者端保留了一段时间,因此如果发生任何崩溃或问题,您可以再次致电发布者。