Fellow StackOverflowers,有沒有辦法讓我以編程方式刪除ActiveMQ中的隊列或主題?我正在使用ActiveMQ的標準持久性,並且我的應用程序要求在啓動時動態重新創建所有新隊列(除非隊列中存儲消息,在這種情況下隊列應該保持存在)。ActiveMQ - 以編程方式刪除隊列
我還通過會話以編程方式創建所有隊列。是否有與該過程等效的內容,僅用於刪除隊列?查詢和遍歷現有的隊列也是有用的,但我還沒有找到一種方法來做到這一點。
Fellow StackOverflowers,有沒有辦法讓我以編程方式刪除ActiveMQ中的隊列或主題?我正在使用ActiveMQ的標準持久性,並且我的應用程序要求在啓動時動態重新創建所有新隊列(除非隊列中存儲消息,在這種情況下隊列應該保持存在)。ActiveMQ - 以編程方式刪除隊列
我還通過會話以編程方式創建所有隊列。是否有與該過程等效的內容,僅用於刪除隊列?查詢和遍歷現有的隊列也是有用的,但我還沒有找到一種方法來做到這一點。
雖然不是很多具體例子,這裏有一些關於它的資料: http://activemq.apache.org/how-do-i-purge-a-queue.html
謝謝你,稍後我會看看BrokerViewMBean接口,看看我能用它做些什麼。我會讓你知道它是否有效。 – 2010-06-14 12:22:29
從ActiveMQ的編程方式刪除一個目標,你需要使用在該removeTopic
和removeQueue
方法通過JMX這樣做經紀人MBean(org.apache.activemq:BrokerName=localhost,Type=Broker
)。我已經發布了一些示例代碼來證明這一點,包括使用removeTopic
方法,在對要點是:
希望有所幫助。
布魯斯
您還可以Delete Destinations不活動的一段時間。因爲主動MQ可用5.4
或者,如果你正在運行的嵌入式你可以使用API刪除目的地的ActiveMQ:Region.removeDestination
如果您使用的春天JmsTemplate時,你可以這樣來做:
Connection cn = getJmsTemplate().getConnectionFactory().createConnection();
ActiveMQDestination destination = ActiveMQDestination.createDestination(queueName, ActiveMQDestination.QUEUE_TYPE);
if(cn instanceof PooledConnection){
((PooledConnection)cn).getConnection().destroyDestination(destination);
}
被你運行ActiveMQ嵌入式還是獨立運行? – Andrejs 2014-03-01 10:36:34