我已经使用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
的最佳方法?