2013-06-20 15 views
2

我在Eclipse中使用Azure SDK,並試圖檢索與服務總線相關的所有隊列的列表。我能夠正確連接到服務總線,但是當我打電話listQueues它只返回前100個隊列(還有約130)Java Azure ServiceBusService listQueues()上限爲100個隊列?

ListQueuesOptions options = new ListQueuesOptions(); 

    options.setTop(200); 
    options.setSkip(0); 

    System.out.println(options.getTop()); 

    ListQueuesResult queuesResult = serviceBusContract.listQueues(options); 
    List<QueueInfo> list = queuesResult.getItems(); 

    for (QueueInfo info : list) 
    { 
     System.out.println("Queue name: " + info.getPath()); 
    } 

它似乎像ListQueuesOptions應該修改隊列檢索方式,它的確如此。將top設置爲20並跳至0會給出前20個,將top設置爲40,並將第20個設置爲20,依此類推。但是如果我運行上面的代碼,我仍然只打印100個隊列。由於某種原因,限制在100?

我知道我可能只是繼續在100的迭代中調用listQueues並計算看看我是否已經達到100,然後再次運行它,但這是一個非常奇怪的問題,所以我想我會問因爲這個文件不是很清楚。

謝謝!

回答

2

您可以爲頂部設置的最大值爲100.您需要每次詢問100個批次。使用跳過來獲得下一批。

0

您是否試過啓動類似提琴手或wireshark的東西來檢查對請求的響應?我已經檢查了列表隊列(http://msdn.microsoft.com/en-us/library/windowsazure/hh780759.aspx)的API,但沒有看到任何分頁行爲,所以我不得不推測其返回整個列表(按照文檔的AtomPub格式),結果是然後由java SDK解析。

那麼有可能這是您使用的SDK中的錯誤?