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

Java JVM进程终止时的JMS onMessage行为,java,jms,Java,Jms,当我在onMessage方法上收到一些消息,并且在我完成消息处理之前,JVM的进程被终止时会发生什么 消息在我的进程重新启动后重新传递?它取决于您的JMS服务提供商,如果是weblogic,它会写入物理文件,您可以重新推送。但是它有点复杂。创建网桥时可以配置物理文件的位置 过去我们也面临这个问题,然后我们转向卡夫卡。在KAFKA中,消息会在发布服务器端保留一段时间,因此如果出现任何崩溃或问题,您可以再次调用发布服务器。这是由JMS的确认部分专门控制的。不同的JMS提供程序和客户端的行为不同 消息

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


消息在我的进程重新启动后重新传递?

它取决于您的JMS服务提供商,如果是weblogic,它会写入物理文件,您可以重新推送。但是它有点复杂。创建网桥时可以配置物理文件的位置


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

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

消息使用者必须确认消息已被接收和处理。JMS队列将考虑要消耗的消息。

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