方法一
通過 ActiveMQ Web 控制台刪除。
方法二
通過 Java 代碼刪除。
ActiveMQConnection.destroyDestination(ActiveMQDestination destination)
方法三
通過配置 conf/activemq.xml, 當 broker 探測到閑置的隊列或主題,刪除、回收資源。
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulePeriodForDestinationPurge="3600000"> <destinationPolicy> <policyMap> <policyEntries> <policyEntry topic=">"> <pendingMessageLimitStrategy> <constantPendingMessageLimitStrategy limit="1000"/> </pendingMessageLimitStrategy> </policyEntry> <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/> </policyEntries> </policyMap> </destinationPolicy> </broker>
schedulePeriodForDestinationPurge = 3600000,表示每一小時檢查一次,默認為 0,此功能關閉
gcInactiveDestinations,true 表示刪除回收閑置的隊列,默認為 false
inactiveTimoutBeforeGC = 600000,表示當隊列或主題閑置 10 分鍾后被刪除,默認為 60 秒。