我正在尝试编写一个脚本来通过shell查询ActiveMQ(使用activemq-admin query
命令)来确定“到目前为止”队列的最大大小是什么(也就是说,自服务器启动以来)。
当我输入以下查询时:
activemq-admin query -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 :(得分:0)
此后经纪人是否已停止/启动?我只是尝试了自己,如果我停止代理,数据就会“离开”队列,这对我来说听起来像个错误。你应该在ActiveMQ论坛上询问这个问题。顺便说一下,我使用的是版本5.5.1,这是他们所说的最新版本,这个bug根本不是新的,请看一下相关的AMQ-1367。
同样,你最好的选择是在ActiveMQ论坛上:
干杯,尤金。