从 Spring JMS 捕获 MQ 关闭事件

Capture MQ down event from Spring JMS

Spring 的默认消息侦听器容器是否有类似 ErrorHandler 的任何方法,我可以在其中捕获 MQ 关闭事件。

我可以从 spring 获取以下日志,但需要在 MQ 关闭时报告。

o.s.j.l.DefaultMessageListenerContainer  : Setup of JMS message listener invoker failed for destination
o.s.j.l.DefaultMessageListenerContainer  : Successfully refreshed JMS Connection

我怎样才能做到这一点?

最后我通过覆盖 DefaultMessageListenerContainerrefreshConnectionUntilSuccessful 解决了我的问题,如下所示:

public class MessageListenerContainer extends DefaultMessageListenerContainer {

@Override protected void refreshConnectionUntilSuccessful() {
    super.refreshConnectionUntilSuccessful();
    // Your own implementation goes here like sending an email
    logger.error(MessageListenerContainer.class, new Exception("MQ CONNECTION LOST"));
}}