Я пытаюсь выяснить, как удобно приостановить все потребители/сообщение-слушателей, в то время как мое приложение находится в режиме контролируемого технического обслуживания. Приложение использует клиентские библиотеки ActiveMQ 5.13.3.ActiveMQ: пауза/резюме потребители при использовании пула подключений
Некоторое время назад я переключился с одного ActiveMQConnectionFactory
на PooledConnectionFactory
. Она в настоящее время установка следующим образом:
ActiveMQConnectionFactory amcf = new ActiveMQConnectionFactory(config.getMessageBrokerUrl());
amcf.setTrustedPackages(Arrays.asList(new String[] {
"some.package.or.other",
"java.lang",
"java.util"
}));
connectionFactory = new PooledConnectionFactory(amcf);
connectionFactory.setCreateConnectionOnStartup(true);
Потребители и производители «создать» (= выборки) соединение из пула соединений и «закрыть», когда они сделаны, возвращая его в бассейн. Очевидно, что в случае MessageListeners он получается один раз при запуске и возвращается при завершении работы приложения.
ActiveMQConnection.stop()
says Временно останавливает доставку входящих сообщений. Идеально подходит для того, что я хочу, только пул, очевидно, содержит много соединений, а не только один.
Как вы делаете паузу все соединения пула соединений ActiveMQ?
Спасибо. Приостановка очереди для меня не является решением, другие клиенты все равно будут обмениваться ею. Вариант использования - это управление отключением отдельных узлов кластера. Я рассмотрю, как остановить связь, а не соединение. – Hank