You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Adam Chase <ad...@gmail.com> on 2009/01/23 06:05:46 UTC

cpp broker: subscriptionManager subscribe/unsubscribe/subscribe issue

Maybe you already know about this, but when I subscribe, then
unsubscribe and then resubscribe the same queue from a
subscriptionManager, I get:  Queue already exists for SLOT.

I'm not suicidal.  I'm trying to have my consumers fail-over and then fail-back.

I have 2 consumers and I want either of them to handle both
consumption queues if the other crashes.

I have a queue with queueNames in it.  I'm getting messages with those
queueNames, manual accept and not accepting them, subscribing to the
queueName from the queue and processing those messages.  When I crash,
the queueName I was using becomes available to the other consumer and
it subscribes to it.  When the other queue comes back and announces
itself via another message, I fail back by canceling my secondary
subscription once I'm done with any outstanding messages and releasing
the message I was holding for that group.  The other consumer picks up
here.  But when a consumer has to pick up the slack once again, I get
this error.

Let me know if you have any insight.

Adam

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: cpp broker: subscriptionManager subscribe/unsubscribe/subscribe issue

Posted by Adam Chase <ad...@gmail.com>.
Yes it is with a LocalQueue.

Thanks,

Adam

On Fri, Jan 23, 2009 at 9:18 AM, Gordon Sim <gs...@redhat.com> wrote:
> Adam Chase wrote:
>>
>> Maybe you already know about this, but when I subscribe, then
>> unsubscribe and then resubscribe the same queue from a
>> subscriptionManager, I get:  Queue already exists for SLOT.
>
> Thats using a LocalQueue rather than a MessageListener, right? I've raised a
> Jira [https://issues.apache.org/jira/browse/QPID-1613] and
> have committed a fix to trunk (r737028).
>
> If you are using the M4 release, a workaround is to call:
>
>  session.getExecution().getDemux().remove("xyz");
>
> After canceling a subscription with a LocalQueue (where "xyz" is the
> subscription name you pass to SubscriptionManager::cancel()).
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:users-subscribe@qpid.apache.org
>
>

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Re: cpp broker: subscriptionManager subscribe/unsubscribe/subscribe issue

Posted by Gordon Sim <gs...@redhat.com>.
Adam Chase wrote:
> Maybe you already know about this, but when I subscribe, then
> unsubscribe and then resubscribe the same queue from a
> subscriptionManager, I get:  Queue already exists for SLOT.

Thats using a LocalQueue rather than a MessageListener, right? I've 
raised a Jira [https://issues.apache.org/jira/browse/QPID-1613] and
have committed a fix to trunk (r737028).

If you are using the M4 release, a workaround is to call:

   session.getExecution().getDemux().remove("xyz");

After canceling a subscription with a LocalQueue (where "xyz" is the 
subscription name you pass to SubscriptionManager::cancel()).

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org