Thanks Marc for responding.
The issue is reproducible after idle time of more than 12 hours is my observation and after I restart the app all the messages stuck are released and sent through, resolving the issue. My connection factory code is below:
protected Hashtable<String, Object> environMentProperties(JmsPropertiesFileItConfiguration jmsProperties) {
Hashtable<String, Object> env = new Hashtable();
env.put(InitialContext.INITIAL_CONTEXT_FACTORY, “com.solacesystems.jndi.SolJNDIInitialContextFactory”);
env.put(“java.naming.provider.url”, jmsProperties.getProviderUrl());
env.put(“Solace_JMS_SSL_TrustStoreFormat”, jmsProperties.getTruststoreType());
env.put(“Solace_JMS_VPN”, jmsProperties.getVpnProfile());
env.put(“Solace_JMS_SSL_ValidateCertificate”, Boolean.valueOf(jmsProperties.isSslEnabled()));
env.put(“Solace_JMS_SSL_TrustStore”, jmsProperties.getTruststore());
env.put(“SOLACE_JMS_SSL_TRUST_STORE_PASSWORD”, jmsProperties.getTruststorePassword());
env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE, jmsProperties.getKeystore());
env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_FORMAT, jmsProperties.getKeystoreType());
env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_PASSWORD, jmsProperties.getKeystorePassword());
env.put(SupportedProperty.SOLACE_JMS_AUTHENTICATION_SCHEME,
SupportedProperty.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE);
env.put(SupportedProperty.SOLACE_JMS_SSL_CIPHER_SUITES, “ECDHE-RSA-AES256-GCM-SHA384,ECDHE-RSA-AES128-GCM-SHA256”);
env.put(“Solace_JMS_JNDI_ConnectRetries”, jmsProperties.getConnectRetries());
env.put(“Solace_JMS_JNDI_ConnectRetriesPerHost”, jmsProperties.getConnectionRetriesPerHost());
env.put(“Solace_JMS_JNDI_ConnectTimeout”, jmsProperties.getConnectTimeout());
env.put(“Solace_JMS_JNDI_ReadTimeout”, jmsProperties.getReadTimeout());
env.put(“Solace_JMS_JNDI_ReconnectRetries”, jmsProperties.getReconnectRetries());
env.put(“Solace_JMS_JNDI_ReconnectRetryWait”, jmsProperties.getReconnectRetryWait());
return env;
}
protected JmsComponent jmsComponent(JmsPropertiesFileItConfiguration jmsProperties, Hashtable<String, Object> env) throws NamingException, JMSException {
JmsComponent jmsComponent = new JmsComponent(this.jmsConfiguration(jmsProperties, env));
jmsComponent.setAcknowledgementMode(2);
jmsComponent.setAutoStartup(true);
return jmsComponent;
}
protected JmsConfiguration jmsConfiguration(JmsPropertiesFileItConfiguration jmsProperties, Hashtable<String, Object> env) throws NamingException, JMSException {
JmsConfiguration jmsConfiguration = new JmsConfiguration();
jmsConfiguration.setConnectionFactory(this.connectionFactory(jmsProperties, env));
return jmsConfiguration;
}
public SolConnectionFactory connectionFactory(JmsPropertiesFileItConfiguration jmsProperties, Hashtable<String, Object> env) throws NamingException, JMSException {
InitialContext initialContext = new InitialContext(env);
SolConnectionFactory connectionFactory = (SolConnectionFactory) initialContext.lookup(jmsProperties.getConnectionFactory());
return connectionFactory;