Я использовал JmsPoolConnectionFactory
для создания ConnectionFactory
. И с помощью этого ConnectionFactory
я создал Connection
и MessageListener
. Найдите ниже код:
import javax.annotation.PreDestroy;
import javax.jms.Connection;
import javax.jms.ExceptionListener;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import org.apache.log4j.Logger;
import org.messaginghub.pooled.jms.JmsPoolConnection;
import org.messaginghub.pooled.jms.JmsPoolMessageConsumer;
import org.messaginghub.pooled.jms.JmsPoolSession;
public class MessageListenerContainer{
private void initInternal() {
try {
JmsPoolConnection jmsPoolConnection = (JmsPoolConnection)mqOutputConnectionProducer.getPooledConnFactory().createConnection(userName, password);
JmsPoolSession jmsPoolSession = (JmsPoolSession)jmsPoolConnection.createSession(sessionTransacted, sessionAcknowledgeMode);
JmsPoolMessageConsumer consumer = (JmsPoolMessageConsumer)jmsPoolSession.createConsumer(destinationResolver.getDestination(), messageSelector, true);
consumer.setMessageListener(messageListener);
messageListener.setSession(jmsPoolSession);
jmsPoolConnection.start();
LOG.info("Connection created successfully.");
} catch (Exception e) {
LOG.error(e, e);
throw new RuntimeException(e);
}
}
}
Мой вопрос: если умрет Connection
, то как я могу повторно инициализировать Connection
и MessageListener
. Кто-нибудь может предоставить мне лучший способ для повторной инициализации Connection
и MessageListener
?