I used the qpid-tool and see this for my queue ( I guess I was only
writing 10 messages in my producer):

   Type       Element                110
   =================================================
   property   vhostRef               103
   property   name                   message_queue
   property   durable                False
   property   autoDelete             False
   property   exclusive              False
   property   arguments              {}
   statistic  msgTotalEnqueues       11 messages
   statistic  msgTotalDequeues       0
   statistic  msgTxnEnqueues         0
   statistic  msgTxnDequeues         0
   statistic  msgPersistEnqueues     0
   statistic  msgPersistDequeues     0
   statistic  msgDepth               11
   statistic  byteDepth              108 octets
   statistic  byteTotalEnqueues      108
   statistic  byteTotalDequeues      0
   statistic  byteTxnEnqueues        0
   statistic  byteTxnDequeues        0
   statistic  bytePersistEnqueues    0
   statistic  bytePersistDequeues    0
   statistic  consumerCount          1 consumer
   statistic  consumerCountHigh      1
   statistic  consumerCountLow       1
   statistic  bindingCount           2 bindings
   statistic  bindingCountHigh       2
   statistic  bindingCountLow        2
   statistic  unackedMessages        0 messages
   statistic  unackedMessagesHigh    0
   statistic  unackedMessagesLow     0
   statistic  messageLatencySamples  0
   statistic  messageLatencyMin      0
   statistic  messageLatencyMax      0
   statistic  messageLatencyAverage  0

Does this help?

Adam

On Wed, Jan 28, 2009 at 9:53 AM, Adam Chase <[email protected]> wrote:
> I am using M4.
>
> Adam
>
> On Wed, Jan 28, 2009 at 9:49 AM, Jonathan Robie
> <[email protected]> wrote:
>> I find this surprising. When Adam does the cancel, I would expect all
>> messages that haven't been acknowledged to be available on the server-side
>> queue. When he subscribes the listener, I would expect him to receive the
>> rest.
>>
>> In my programs I always set up the subscriptions first, then call start(),
>> but I don't see anything that looks wrong here.
>>
>> I will get your program running on my box and let you know what I find.
>>
>> Jonathan
>>
>> Carl Trieloff wrote:
>>>
>>> Sorry, one more question, are you M4 or trunk, as Gordon had corrected
>>> something in
>>> this area a little while after M4.
>>>
>>> Still thinking but the cancel after the start. might need another
>>> start(?). I work more on the broker
>>> so will need to go look at that code.
>>>
>>> Carl.
>>>
>>>
>>> Adam Chase wrote:
>>>>
>>>> That is correct.
>>>>
>>>> I published 100 messages to the queue, got one off the localQueue and
>>>> then cancelled.  Since I didn't accept the one I would expect to get
>>>> 100 from the listener.  But I'm getting none.  I think the LocalQueue
>>>> must have prefetched them and be holding on to them.  I thought maybe
>>>> the cancel would release them, but maybe I have to kill the session or
>>>> something.  Not totally sure.
>>>>
>>>> Thanks,
>>>>
>>>> Adam
>>>>
>>>> On Wed, Jan 28, 2009 at 9:07 AM, Carl Trieloff <[email protected]>
>>>> wrote:
>>>>
>>>>>
>>>>> Adam Chase wrote:
>>>>>
>>>>>>
>>>>>>     SubscriptionManager subscriptions(session);
>>>>>>     // Create a listener and subscribe it to the queue named
>>>>>> "message_queue"
>>>>>>     Listener listener(subscriptions);
>>>>>>     // Receive messages until the subscription is cancelled
>>>>>>     // by Listener::received()
>>>>>>     LocalQueue lq;
>>>>>>     subscriptions.start();
>>>>>>     subscriptions.setAutoStop(false);
>>>>>>     SubscriptionSettings settings;
>>>>>>     settings.completionMode = COMPLETE_ON_ACCEPT;
>>>>>>     settings.acceptMode = ACCEPT_MODE_EXPLICIT;
>>>>>>     settings.autoAck = 0;
>>>>>>     settings.flowControl = FlowControl::unlimited();
>>>>>>
>>>>>>     Subscription sub1 = subscriptions.subscribe(lq, "message_queue",
>>>>>> settings, "lq");
>>>>>>     Message m = lq.pop();
>>>>>>     sub1.cancel();
>>>>>>     sleep(5);
>>>>>>
>>>>>>     subscriptions.subscribe(listener, "message_queue", "listener");
>>>>>>     subscriptions.wait();
>>>>>>
>>>>>>
>>>>>> When I do this I get no messages on my listener and subscriptions just
>>>>>> exits.  If I do a while(sleep) instead of the wait, I still never see
>>>>>> my message.  Even if I make 2 connections and 2 sessions and 2
>>>>>> subscriptionManagers and run them both I still don't see messages on
>>>>>> the listener.
>>>>>>
>>>>>> Am I doing something wrong?
>>>>>>
>>>>>>
>>>>>
>>>>> one brief clarification, you are not getting any messages when you
>>>>> re-subscribe. I.e you
>>>>> get messages on the lq, but not on the listener?
>>>>>
>>>>> Carl.
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> Apache Qpid - AMQP Messaging Implementation
>>>>> Project:      http://qpid.apache.org
>>>>> Use/Interact: mailto:[email protected]
>>>>>
>>>>>
>>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> Apache Qpid - AMQP Messaging Implementation
>>> Project:      http://qpid.apache.org
>>> Use/Interact: mailto:[email protected]
>>>
>>
>>
>

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to