2012-02-08 103 views
1

我想寫一個腳本來通過shell查詢ActiveMQ(使用activemq-admin query命令)來確定什麼是「迄今爲止」隊列的最大大小(也就是說,因爲服務器開始了)。詢問ActiveMQ隊列的峯值大小

當我輸入下面的查詢:

ActiveMQ的管理員查詢-QQueue = MyQueueName

我得到以下輸出:

Java Runtime: Sun Microsystems Inc. 1.6.0_25 /usr/java/jdk1.6.0_25/jre 
    Heap sizes: current=91456k free=90978k max=1358080k 
     JVM args: -Dactivemq.classpath=/usr/local/activemq/conf; -Dactivemq.home=/usr /local/activemq -Dactivemq.base=/usr/local/activemq 
ACTIVEMQ_HOME: /usr/local/activemq 
ACTIVEMQ_BASE: /usr/local/activemq 
Connecting to pid: 3005 
DequeueCount = 5930 
Name = MyQueueName 
MinEnqueueTime = 0 
CursorMemoryUsage = 733711 
MaxAuditDepth = 2048 
Destination = loadable 
AverageEnqueueTime = 0.45332837486054295 
InFlightCount = 0 
MemoryLimit = 1048576 
Type = Queue 
EnqueueCount = 8067 
MaxEnqueueTime = 79 
MemoryUsagePortion = 0.0 
ProducerCount = 0 
UseCache = true 
BlockedProducerWarningInterval = 30000 
MaxProducersToAudit = 32 
CursorFull = false 
BrokerName = localhost 
PrioritizedMessages = false 
ConsumerCount = 0 
ProducerFlowControl = true 
Subscriptions = [] 
QueueSize = 2137 
MaxPageSize = 200 
CursorPercentUsage = 69 
DispatchCount = 620 
MemoryPercentUsage = 69 
ExpiredCount = 0 

當我去到網上控制檯我看到2137消息排隊在MyQueueName,這對應於此輸出中的QueueSize字段。

但是在某個時候(在執行一個Java應用程序的時候),我在這個隊列中看到了超過3000條消息。

ActiveMQ是否提供用於獲取「全局最大隊列大小」的度量?也就是說,在任何時間點入隊郵件的最大數量?

在此先感謝!

回答

0

從那以後經紀人是否已經停止/啓動?我只是嘗試了我自己,如果我停止經紀人,數據就會「離開」隊列,這對我來說聽起來像一個錯誤。你應該在ActiveMQ論壇上詢問這個問題。順便說一句,我正在使用5.5.1版,這是最新的穩定,因爲他們說,這個錯誤也不是新的,看看有關AMQ-1367。

同樣,你最好的選擇是對的ActiveMQ論壇:

ActiveMQ forum

乾杯,尤金。

+0

感謝尤金 - 好建議,我會檢查他們 – IAmYourFaja 2012-02-09 14:39:40

+0

跟進與此 - 在論壇(用戶或開發人員)沒有人迴應我的帖子。我將把它解釋爲「不要問」,因爲我們不在意「回答,並且將這個問題標記爲回答,並附加一些規定,即根據軟件的當前狀態我所尋求的是不可能的。 – IAmYourFaja 2012-02-10 17:44:35

+0

@AdamTannon對不起聽到,你可以檢查最新版本並給它一個鏡頭,但這似乎太多了。你能發佈你的帖子的鏈接?我會嘗試打開一個錯誤,看看人們在說些什麼。謝謝! – Eugene 2012-02-11 10:51:24