2013-07-01 117 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。尝试下载一个最近的经纪人每晚构建和运行。