目標: 此次主要介紹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的當下就是去嘗試連線因此一連不上就會重複進入這個區塊中
補充:
主要是給自己的一個紀錄,也分享給有需要的夥伴
註解部分有提及一些參考的連結,有興趣可以點進去看看喔
這是一個心血來潮,產生的文章
若有喜歡或交流的部分都歡迎在下方留言,多多關照。