7. SpringBoot使用jms 聆聽連線錯誤處理


目標: 此次主要介紹jmsTemplate 連線MQ時發生錯誤時該如何處理

就以簡單的重新連線,要顯示特定資訊為例
回顧一下之前的一般設定檔

@Slf4j
@EnableJms
@Component
public class JmsListener {

@Bean
public JmsListenerContainerFactory<?> myFactory(ConnectionFactory connectionFactory,
                                                DefaultJmsListenerContainerFactoryConfigurer configurer) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    configurer.configure(factory, connectionFactory);
    return factory;
}
}

這個DefaultJmsListenerContainerFactory有開一個方法可以實作連線錯誤時該如何處理
而connectionFactory 可以實際建立連線
透過以上兩個物件就可以達到
加入下方程式碼區塊

factory.setExceptionListener(e -> {
                    try {
                        log.info("trying to connect to MQ");
                        connectionFactory.createConnection();
                    } catch (JMSException jmsException) {
                        jmsException.printStackTrace();
                    }
                });

當createConnection的當下就是去嘗試連線因此一連不上就會重複進入這個區塊中

補充:

主要是給自己的一個紀錄,也分享給有需要的夥伴
註解部分有提及一些參考的連結,有興趣可以點進去看看喔

這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。

#mq #jmstemplate







你可能感興趣的文章

Vue、MVVM、MVC、雙向綁定

Vue、MVVM、MVC、雙向綁定

Scrum 是什麼及怎麼運用?

Scrum 是什麼及怎麼運用?

[31] 範疇 - 編譯三步驟、巢狀範疇、錯誤

[31] 範疇 - 編譯三步驟、巢狀範疇、錯誤






留言討論