问题类似于Spring JMS Consumers to a TIBCO EMS Server 中提到的问题自行过期,并且必须重新启动我们的 Spring Boot 应用程序以重新建立连接
下面是我们用于监听器配置的代码片段
public JmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setMaxMessagesPerTask(5);
factory.setConcurrency("5");
return factory;
}
和连接工厂
@Bean
public ConnectionFactory connectionFactory() {
ConnectionFactory connectionFactory = null
Tibjms.setPingInterval(10);
try {
TibjmsConnectionFactory tibjmsConnectionFactory = new TibjmsConnectionFactory(
environment.getProperty("url"));
//few more statments to set other properties
} catch (Exception ex) {
}
return connectionFactory;
}
在 vpn 故障转移期间观察到问题,我们有活动和故障转移 vpn 连接,当 VPN 切换时,在应用程序端 netstat 显示连接已建立,但在 EMS 端 netstat 指示连接已终止或几分钟后未找到,表示 EMS 端没有侦听器.
我们正在使用 DefaultListnerContainer 工厂,它应该在连接终止但无法这样做并且必须重新启动服务器时轮询和刷新连接
我们怀疑由于 VPN 端的一些配置问题,DefaultListnerContainer 无法识别连接已终止并且无法刷新 JMS 连接。
请让我知道是否有任何其他参数或属性可以帮助 DefaultListnerContainer 识别此类情况。