Я не могу остановить ActiveMQ Producer.
Сценарий: Я установил низкие значения для использования памяти и временного хранения.
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="1 mb" />
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb" />
</storeUsage>
<tempUsage>
<tempUsage limit="50 mb" />
</tempUsage>
</systemUsage>
</systemUsage>
Для управления потоком производителя установлено значение false
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="false"/>
</policyEntries>
<policyEntries>
<policyEntry queue=">" producerFlowControl="false"/>
</policyEntries>
</policyMap>
</destinationPolicy>
Теперь брокер заблокировал производителя и не может остановить производителя, почему это происходит?
Брокерские журналы говорят:
Остановка производителя (ID: Hidden) для предотвращения очереди наводнения://test.queue.0. См. Http://activemq.apache.org/producer-flow-control.html для получения дополнительной информации (блокировка для: 151s)
Вы не отключили производителяFlowControl для очередей, только для тем.
Вам нужно добавить что-то вроде этого:
<policyEntry queue=">" producerFlowControl="false"/>
Ссылка, предоставленная журналами, объясняет поведение довольно подробно. Ваш продюсер каким-то образом наводняет брокер, и брокер некоторое время реагирует на блокирование.
перейдите в путь папки bin из терминала и выполните следующую команду:
./activemq stop
Надеюсь, поможет.