Как я могу закрыть соединение JMS и остановить его от прослушивания? - PullRequest
1 голос
/ 19 февраля 2020

Я новичок в этой технологии. Я смиренно прошу вашего участия. Я хотел бы остановить прослушивание JMS и удалить свою очередь в консоли ActiveMQ. Я использую ActiveMQ и Spring. Вот код для получения моей очереди:

     public boolean deleteQueue(String sessionID) {

            try {
                ActiveMQConnection connection = (ActiveMQConnection) jmsTemplate.getConnectionFactory().createConnection();
               connection.start();
                connection.destroyDestination(new ActiveMQQueue(sessionID));

    //             connection.destroyDestination(new ActiveMQQueue(sessionID));
                connection.stop();
                connection.close();



            } catch (JMSException e) {
                System.out.println("Error handled" + e);
            }

            return true;
        }

У меня есть этот MessagingContextConfig файл для конфигурации

    @Configuration
    public class MessagingContextConfig {

        private static final String DEFAULT_BROKER_URL = "tcp://localhost:61616";//added ?jms.alwaysSessionAsync=true  Feb 4

        @Bean
        public ActiveMQConnectionFactory activeMQConnectionFactory(){
            ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
            connectionFactory.setBrokerURL(DEFAULT_BROKER_URL);
            connectionFactory.setTrustedPackages(Arrays.asList("icomm.oss.chat"));

            return connectionFactory;
        }

        @Bean
        public JmsTemplate jmsTemplate(){
            JmsTemplate template = new JmsTemplate();
            template.setConnectionFactory(activeMQConnectionFactory());

            return template;
        }
    }

Как я могу закрыть или остановить соединение здесь? Я не могу использовать connection.close(). Кто-нибудь может мне помочь?

...