2013-06-20 1 views
2

Eclipse에서 Azure SDK를 사용하고 있으며 서비스 버스와 관련된 모든 대기열 목록을 검색하려고합니다. 큐를 검색하는 방법을 수정하도록되어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처럼 보인다 (약 130 거기에) 내가 제대로 서비스 버스에 연결할 수있어,하지만 난 listQueues를 호출 할 때 그것은 처음 100 큐를 반환 , 그리고 그것을 않습니다. 상단을 20으로 설정하고 0으로 건너 뛰면 처음 20, 상단을 40으로 설정하고 20으로 넘어 간다. 하지만 위의 코드를 실행해도 여전히 100 개의 큐만 인쇄됩니다. 그것은 어떤 이유로 100으로 제한됩니까?

저는 listQueues를 100 회 반복하여 계속 호출 할 수 있다는 것을 알고 있습니다. 내가 100을 치고 다시 실행하는지 알아보기 위해 계산하지만 실제로는 이상한 문제이므로 요청할 것입니다. 그 문서가 이것에 대해 아주 명확하지 않기 때문이다.

감사합니다.

답변

2

위로 설정할 수있는 최대 값은 100입니다. 매번 100 번 배치를 요청해야합니다. 건너 뛰기를 사용하여 다음 배치를 가져옵니다.

0

요청에 대한 응답을 조사하기 위해 fiddler 또는 wireshark와 같은 것을 시도한 적이 있습니까? 목록 대기열 (http://msdn.microsoft.com/en-us/library/windowsazure/hh780759.aspx)에 대한 API를 확인한 결과 페이징 동작이 표시되지 않으므로 전체 목록 (문서에 따라 AtomPub 형식)을 반환한다고 추측 할 수는 없으며 그 결과는 다음과 같습니다. 자바 SDK에 의해 파싱된다.

그렇다면 사용중인 SDK의 버그 일 수 있습니까?