I have built an api that connects successfully via keystore/truststore first time. Of Late I observed a weird issue as stated below:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is com.solacesystems.jms.ConfigurationException: Unable to load trust store: /bpms/sail/stride/sail-stride/live/config/sit/SailEbbsTrustStore.jks
The path mentioned /bpms/sail/stride/sail-stride/live/config/sit/ is outside my package and not unders classpath of my spring boot application.
The issue makes the connection failure and message transfer is stuck. I am using spring boot application and Jms libraries to create connection factory.
Kindly help here as I am helpless across google for this issue.
Thanks,
ABhishek
Hi @abhis_khiladi ,
Interesting issue. I haven’t seen this before. Is it reproducible? Is it upon restart of the application or just when the app is trying to reconnect?
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;
Hi @abhis_khiladi ,
Interesting. When you say “idle time of more than 12 hours” what do you mean by that? To be honest nothing is jumping out at me as an issue.
Note: if you have paid support please open a support ticket so you can share the application logs, etc. and they can help troubleshoot the issue.