Listener на переподключение/восстановление соединения с сервером

ibm-mq-version: 9.0.5.0 camel-version: 2.20.0 camel-jms: 2.20.0 spring-jms: 5.0.7.RELEASE

Как можно отследить попытки переподключения/восстановления соединения с сервером IBM MQ с помощью camel? Есть exceptionListener для обработки ошибок соединения который можно прописать в бинеorg.springframework.jms.connection.CachingConnectionFactory, а на создания нового коннекта не могу найти listener

<bean id="alphab-mq-connection-factory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
    <property name="port" value="${alphab-mq.port}"/>
    <property name="channel" value="${alphab-mq.channel}"/>
    <property name="hostName" value="${alphab-mq.host.name}"/>
    <property name="queueManager" value="${alphab-mq.queue.manager}"/>
    <property name="transportType" value="${alphab-mq.transport.type}"/>
    <property name="SSLCipherSuite" value="${alphab-mq.ssl.cipher.suite}"/>
    <property name="SSLFipsRequired" value="${alphab-mq.ssl.fips.required}"/>

    <property name="SSLSocketFactory" ref="alphab-ssl-socket-factory"/>
</bean>
<bean id="alphab-mq-caching-connection-factory"
      class="org.springframework.jms.connection.CachingConnectionFactory">
    <property name="reconnectOnException" value="true"/>
    <property name="sessionCacheSize" value="${alphab-mq.session.cache.size}"/>
    <property name="targetConnectionFactory" ref="alphab-user-credentials-connection-factory"/>
</bean>

<bean id="alphab-user-credentials-connection-factory"
      class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="username" value="${alphab-mq.username}"/>
    <property name="password" value="${alphab-mq.password}"/>
    <property name="targetConnectionFactory" ref="alphab-mq-connection-factory"/>
</bean>

Ответы (1 шт):

Автор решения: TRAKTOR

После долгих поисков решения, нашел способ, переопределением базового класса CachingConnectionFactory из spring-jms

  • переопределение метода createConnection() позволило при попытке установить соединение определить была ли произведена успешная установка соединения что позволило отправлять метрики о состоянии соединения
  • и переопределение метода onException() позволил прослушивать разрывы соединения при старте и во время работы приложения
→ Ссылка