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() позволил прослушивать разрывы соединения при старте и во время работы приложения