Запуск и остановка прослушивателя JMS с помощью Spring

Итак, вопрос в том, как временно остановить и запустить прослушиватель jms, созданный с использованием Spring, следующим образом:

<amq:connectionFactory id="exampleJmsFactory" brokerURL="tcp://${jms.broker.url}" />

<jms:listener-container concurrency="1" connection-factory="exampleJmsFactory"  destination-type="queue" message-converter="exampleMessageConverter">
        <jms:listener destination="incoming.example.client.queue" ref="exampleProductsMessageConsumer" method="consume"/>
</jms:listener-container>


<bean id="exampleProductsMessageConsumer" class="com.unic.example.jms.receive.JmsExampleProductsMessageConsumer" scope="tenant"/>

Так в чем собственно проблема. У нас есть механизм инициализации/обновления, который клиент может запустить в любое время, и во время этой инициализации/обновления я хочу прекратить потребление ЛЮБЫХ сообщений, потому что в это время система непригодна для использования, и если сообщение пришло, оно будет потеряно.

Итак, как я могу остановить прослушиватель или контейнер прослушивателя или все соединение с помощью API. Я обнаружил, что у класса AbstractJmsListeningContainer есть остановка/запуск, но как я могу его получить? Я имею в виду, что ни у одного из этих jms :listener и listener -контейнеров нет имени или чего-то подобного.

8
задан JOKe 10 July 2012 в 06:32
поделиться