2013-07-01 158 views
0

這段代碼持續循環遍歷隊列瀏覽器。 Apache.NMS 1.5.1,Apache.NMS.ActiveMQ 1.5.6,代理5.8.0爲什麼我在ActiveMQ QueueBrowser中循環?

隊列大小是我檢查了預取,它仍然是默認的。

ActiveMQ with C# and Apache NMS - Count messages in queue建議在循環中檢查enumerator.Current,但我已經這樣做了。

我試着設置一個大的預取?jms.prefetchPolicy.all=50000,但它仍然循環。

IConnectionFactory connectionFactory = new ConnectionFactory(connectUri, "SNDTest"); 
    using (IConnection conn = connectionFactory.CreateConnection(USERNAME, PASSWORD)) 
    { 
     conn.Start(); 
     using (ISession session = conn.CreateSession()) 
     { 
      using (IQueueBrowser browser = session.CreateBrowser(errorQueue)) 
       { 
        int i = 0; 
        var e = browser.GetEnumerator(); 
        while (e.MoveNext()) 
        { 
         i++; 
         IMessage m = e.Current as IMessage; 

如何停止循環?

+0

while(e.MoveNext()) – slipsec

+0

什麼版本的經紀人? –

+0

經紀人版本5.8.0 – slipsec

回答

0

這可能與v5.9.0快照版本中修復的一些錯誤有關,例如AMQ-4487。嘗試下載一個最近的經紀人每晚構建和運行。