yes, there are no dequeues, so the broker has all the messages which is correct. So
it looks like the second subscriptions is not running - will look into that

Carl.


Adam Chase wrote:
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