对 IBM MQ 系列队列中每个优先级的项目进行计数
Posted
技术标签:
【中文标题】对 IBM MQ 系列队列中每个优先级的项目进行计数【英文标题】:Counting items of each priority level in an IBM MQ Series Queue 【发布时间】:2008-10-07 10:27:16 【问题描述】:我有一个 IBM WebSphere MQ 队列(在 Windows 上运行),其中包含许多不同优先级的项目。
我目前使用mqQueue.CurrentDepth
获得总深度计数,但我想获得队列中每个优先级的项目数。
知道如何实现这一目标吗?
【问题讨论】:
【参考方案1】:您可以使用 JMS QueueBrowser 浏览队列中的消息并为每个优先级建立总数。
QueueBrowser browser = session.createBrowser(someQueue);
for (Enumeration iter = browser.getEnumeration(); iter.hasMoreElements())
Message message = (Message) iter.nextElement();
int priority = message.getJMSPriority();
// update counters...
【讨论】:
请记住,所获得的数字只是近似值。在计算消息所需的时间内,队列的内容可能发生了很大变化。较高优先级消息的计数往往比较低优先级消息的错误率更大。入队/出队率也会影响计数的可靠性,错误率随着活动的增加而增加。所以这段代码完成了工作,但从表面上看,潜在的需求是有问题的。以上是关于对 IBM MQ 系列队列中每个优先级的项目进行计数的主要内容,如果未能解决你的问题,请参考以下文章