activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From spamtrap <nospam.1.friedbad...@spamgourmet.com>
Subject Re: Allowing another consumer to have a message (ActiveMQ-CPP)
Date Tue, 09 Jun 2015 13:51:14 GMT
On Tue, 9 Jun 2015 07:29:16 -0600, Tim Bain
<tbain@alumni.duke.edu> wrote:

>So why can't you use transactions?  Won't you get what you want if you
>commit the transaction after every successful message and
>rollback()/close() and then reconnect after every failed one?

No.  It may take some time to process a message so we operate a
'window'.  Therefore there would normally be more than one message
outstanding.

>Also is the app server going to fail to respond to *certain* messages, or
>is it going to fail to respond to *any* messages?  If the latter, you can
>delay the reconnect till you figure out that the web service is available
>again.

We have to assume it may fail to respond to certain messages.

>On Tue, Jun 9, 2015 at 7:09 AM, spamtrap <
>nospam.1.friedbadger@spamgourmet.com> wrote:
>
>> On Tue, 9 Jun 2015 06:43:45 -0600, Tim Bain
>> <tbain@alumni.duke.edu> wrote:
>>
>> The situation is that the consumer gets a message from a queue and
>> then converts into into a different format and sends it to an
>> application server, which should respond with an acknowledgement
>> message.  If the application server does not respond to a particular
>> message then we want to be able to allow another ActiveMQ consumer to
>> pick up the message and send it elsewhere.  Any consumer should be
>> able to process the message so we don't want to use selectors.
>>
>> >In this scenario, do you want to consume it twice, or do you really want
>> to
>> >consume it once but you're picking which consumer gets it?  If the latter,
>> >can you use selectors to make sure the right consumer gets the right
>> >messages?  Or maybe an embedded Camel route to send those messages to a
>> >queue that's specific to the consumer that should get them?
>> >On Jun 9, 2015 6:00 AM, "spamtrap" <nospam.1.friedbadger@spamgourmet.com>
>> >wrote:
>> >
>> >> On Tue, 9 Jun 2015 07:24:24 -0400, Christopher Shannon
>> >> <christopher.l.shannon@gmail.com> wrote:
>> >>
>> >> >The use case you are trying to achieve is probably best done by using
a
>> >> >transaction instead of individual acknowledgements.  If you call
>> rollback
>> >> >on the session then the message would be available to be redelivered
to
>> >> >another consumer.
>> >>
>> >> I don't think I can use a transaction because all messages are
>> >> committed at once.  We need to be able to select which messages may be
>> >> redelivered and which not, hence the individual acknowledge mode is
>> >> used.
>> >>
>> >> Will the rollback work with individual acknowledgements?
>> >>
>> >>
>> >> >
>> >> >On Tue, Jun 9, 2015 at 3:50 AM, spamtrap <
>> >> >nospam.1.friedbadger@spamgourmet.com> wrote:
>> >> >
>> >> >> Hi,
>> >> >>
>> >> >> In some cases we want to allow another consumer to consumer a message
>> >> >> that has already been consumed.   The session is opened using
>> >> >> INDIVIDUAL_ACKNOWLEDGE and the message has not been acknowledged.
 I
>> >> >> have tried closing the session where the message has been consumed
>> but
>> >> >> the message is not available to the other consumer.  How can I
>> achieve
>> >> >> what I need?
>> >> >>
>> >> >> TIA.
>> >> >>
>> >> >>
>> >> >>
>> >>
>> >>
>> >>
>>
>>
>>



Mime
View raw message