从 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
我怎样才能做到这一点?
最后我通过覆盖 DefaultMessageListenerContainer 的 refreshConnectionUntilSuccessful 解决了我的问题,如下所示:
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"));
}}
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
我怎样才能做到这一点?
最后我通过覆盖 DefaultMessageListenerContainer 的 refreshConnectionUntilSuccessful 解决了我的问题,如下所示:
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"));
}}