Hey All,
 
Moving forward with concurrent reads on a queue... Browse works like a charm.. 
Now, any insight on how to selectively remove a message from a queue?  If 
possible I would like to avoid creating a consumer(with messageID) just for 
this as it seems a little cludgy..  The only delete method I have seen is by 
cmd line which tells me that it's possible but I'm ignorant of the calls...
 
thanks for all your help,
Matthew
 
-----Original Message-----
From: "Rob Godfrey" <[email protected]>
Sent: Wednesday, April 25, 2012 10:12am
To: [email protected]
Subject: Re: Duplating Messages



OK... so as Gordon says in his e-mail, there's two basic approaches
one can take... either attempting to use the lower level AMQP 0-10
commands to selectively consume messages at the client, or to separate
out the browsing and consuming into separate activities (e.g. one
pattern I have seen is to set up one consumer in a "browse only" mode
and then for each message you want to "consume" create a consumer with
a selector matching the message id of the message... obviously this
has a higher overhead however).

Both brokers will support both these approaches, the Java Broker
supports the older AMQP 0-9-1 protocol in addition to 0-10 which I
mention in case you have been using any particular client libraries
with RabbitMQ (Rabbit speaks AMQP 0-9-1 and not AMQP 0-10).

In terms of the Qpid clients, our Java client doesn't really offer an
easy API (or a supported one) for accessing the 0-10 protocol
directly, instead being focused on JMS.  the pattern described above
can be used from the JMS API, the only issue is that we may need to do
a bit of work to get the client running on Android - I think someone
was highlighting the use of JNDI being an issue there.

Cheers,
Rob

On 25 April 2012 16:02,  <[email protected]> wrote:
>
> Hi Rob,
>
> That's great to hear!!  We are using Java clients for web and Android.  As 
> far as the broker is concerned if the performance is equal we would opt for 
> Java..  For furthur discussion we can assume that we are using Java clients 
> and the Java broker running on Ubuntu 11.10 64bit.
>
> thanks very much,
> Matthew
>
> -----Original Message-----
> From: "Rob Godfrey" <[email protected]>
> Sent: Wednesday, April 25, 2012 9:52am
> To: [email protected]
> Subject: Re: Duplating Messages
>
>
>
> There are certainly ways of achieving this result... which language
> client (language) and which broker  (C++ or Java) are you looking to
> use?
>
> Cheers,
> Rob
>
> On 25 April 2012 15:41,  <[email protected]> wrote:
>>
>> Hi All,
>>
>> The issue we (I am working with Luiz) are trying to solve is that we need a 
>> durable queue subscribed to  a topic exchange.  We are calling this the 
>> UserQueue.  This queue needs to be read concurrently by the same human user 
>> connecting with multiple "devices" (web client, Android, desktop).  These 
>> devices must receive all of the messages on the queue.
>>
>> Currently we are using RabbitMQ and it is not possible to have two devices 
>> connected concurrently to the same queue that receive all of the messages.
>>
>> Round robin is not an option as we need all connected devices to receive all 
>> of the messages at the same time.
>>
>> Using temporary queues to subscribe to the exchange is not an option as we 
>> need to receive messages that were published when the  human user was not 
>> logged on with any device.
>>
>> Here's our idea;
>>
>> TopicExchange -> UserQueue (durable) <-- Multiple Concurrent Users (receive 
>> all messages)
>>
>> We are looking at using browse to enable this functionality. Does this seem 
>> doable?
>>
>> thanks for all your help,
>> Matthew
>>
>> -----Original Message-----
>> From: "Alan Conway" <[email protected]>
>> Sent: Wednesday, April 25, 2012 9:14am
>> To: [email protected]
>> Cc: "Luiz Gustavo Pozzo" <[email protected]>
>> Subject: Re: Duplating Messages
>>
>>
>>
>> On 04/25/2012 08:45 AM, Luiz Gustavo Pozzo wrote:
>>>
>>> Thanks for answering,
>>> My problem is, I should have the same user logged in 2 differents devices 
>>> (ex: pc and smartphone), in this case I want to make sure he receives the 
>>> same message in both devices, but in the moment he take some action over 
>>> this message I have to remove it from queue. Woking with only one kill for 
>>> the same user seems like the easier way
>>
>> Another option is to use a "fanout" exchange. Each receiver binds a private
>> queue to the exchange and your sender sends messages to the exchange. A 
>> fanout
>> exchange sends each message it receives to all of the queues bound to it.
>>
>>
>>>> Date: Wed, 25 Apr 2012 09:00:32 +0100
>>>> From: [email protected]
>>>> To: [email protected]
>>>> Subject: Re: Duplating Messages
>>>>
>>>> On 04/24/2012 06:09 PM, Luiz Gustavo Pozzo wrote:
>>>>> Is there a way to have multiple clients connected to a queue and all of 
>>>>> them receive all the messages from this queue?
>>>>
>>>> You can have them subscribe as browsers rather than consumers. However
>>>> in that case you need to think about how the messages will be removed.
>>>>
>>>> Can you explain the context for the question? Why do you want this
>>>> pattern as opposed to say having a pub-sub pattern (where each
>>>> subscriber has their own private subscription queue with a copy of each
>>>> message on it). That might help with further suggestions.
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [email protected]
>>>> For additional commands, e-mail: [email protected]
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to