2008-10-07 68 views
1

我有一個IBM WebSphere MQ隊列(在Windows上運行),其中包含許多不同優先級的項目。計算IBM MQ系列隊列中每個優先級的項目

我目前使用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... 
} 
+1

請記住,實現的數字只是近似值。在計算消息所需的時間內,隊列的內容可能已經發生了很大的變化。較高優先級消息的計數將傾向於具有比較低優先級消息的錯誤率更大的錯誤率。入隊/出隊率也會影響計數的可靠性,錯誤率隨着活動而增加。所以這段代碼完成了這項工作,但其基本要求在表面上是有問題的。 – 2010-04-27 04:47:50