Want to consume solace message from que using multiple consumers and multiple threads
public Connection connection() {
Connection connection = null;
javax.jms.Session session;
try {
logger.info(“>>>>>>>>>>>>>>>>connectionFactory.setHost:” + solConnectionFactory().getHost());
logger.info(“>>>>>>>>>>>>>>>getProperty(spring.datasource.solaceQue):” + environment.getProperty(“spring.datasource.solaceQue”));
session = ((Connection) solConnectionFactory().createConnection()).createSession(false, javax.jms.Session.AUTO_ACKNOWLEDGE);
Destination queue = session.createQueue(environment.getProperty(“spring.datasource.solaceQue”));
DefaultMessageListenerContainer defaultMessageContainer=new DefaultMessageListenerContainer();
defaultMessageContainer.setConnectionFactory(solConnectionFactory());
defaultMessageContainer.setConcurrency(“5-20”);
defaultMessageContainer.setDestination(queue);;
defaultMessageContainer.setMaxConcurrentConsumers(20);
defaultMessageContainer.setDestinationName(“spring.datasource.solaceQue”);
defaultMessageContainer.setExceptionListener(exceptionListener);
defaultMessageContainer.setCacheLevel(DefaultMessageListenerContainer.CACHE_CONSUMER);
defaultMessageContainer.setMessageListener(jmsMessageListener());
defaultMessageContainer.afterPropertiesSet();
defaultMessageContainer.start();
logger.info(“>>>>>Solace Connected. Awaiting message…”);
} catch (Exception e) {
logger.error(“JMS connection failed with Solace.” + ExceptionUtils.getFullStackTrace(e));
e.printStackTrace();
}
return connection;
}
@Bean
public SolConnectionFactory solConnectionFactory() {
SolConnectionFactory connectionFactory = new SolConnectionFactoryImpl();
connectionFactory.setHost(environment.getProperty("solace_url"));
connectionFactory.setAuthenticationScheme(JCSMPProperties.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE);
connectionFactory.setVPN(environment.getProperty("solace_vpn"));
connectionFactory.setSSLKeyStoreFormat("jks");
connectionFactory.setSSLTrustStoreFormat("jks");
connectionFactory.setSSLKeyStore(environment.getProperty("solace_certs_keystore"));
connectionFactory.setSSLKeyStorePassword(environment.getProperty("solace_certs_keystore_password"));
connectionFactory.setSSLTrustStore(environment.getProperty("solace_certs_trust"));
connectionFactory.setSSLTrustStorePassword(environment.getProperty("solace_certs_trust_password"));
connectionFactory.setSSLPrivateKeyAlias(environment.getProperty("keyStoreAlias"));
connectionFactory.setSSLValidateCertificate(false);
connectionFactory.setSSLValidateCertificateDate(false);
connectionFactory.setDynamicDurables(true);
connectionFactory.setDirectTransport(false);
logger.info(environment.getProperty("solace_url") + ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
return connectionFactory;
}