Issue is similar to the one mentioned at Spring JMS Consumers to a TIBCO EMS Server expire on their own and have to restart our spring boot application to restablish the connection
and below is the code snippet we are using for Listener configuration
public JmsListenerContainerFactory jmsListenerContainerFactory() {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory());
factory.setMaxMessagesPerTask(5);
factory.setConcurrency("5");
return factory;
}
And connection 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;
}
Issue is observed during vpn failovers, we have active and failover vpn connection,when VPN switches, at application end netstat shows connection is established but at EMS end netstat indicates that connection is terminated or not found after few minutes, indicating no listener at EMS end.
We are using DefaultListnerContainer factory which supposed to poll and refresh connection if connection is terminated but unable to do so and have to restart the server
We suspect due to some configuration issues at VPN end, DefaultListnerContainer is not able to identify that connection has been terminated and unable to refresh JMS connection.
Please let me know if there are any other parameters or properties that can help DefaultListnerContainer to identify such scenarios.