activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <gary.tu...@gmail.com>
Subject Re: ActiveMQ redelivering acknowledged messages
Date Fri, 05 Dec 2014 15:22:29 GMT
It looks like my bad w.r.t CLIENT_ACK, my focus was on the tck and
transaction semantics.
For folks who use the rar managed connection factory in plain jms mode
there is a need to control the ack mode.
I added  connection info param useSessionArgs  to allow that.
  - CLIENT_ACKNOWLEDGE mode support should be back in 5.11
https://issues.apache.org/jira/browse/AMQ-5264
https://git-wip-us.apache.org/repos/asf?p=activemq.git;a=commit;h=9e139017

On 25 November 2014 at 15:47, Tim Bain <tbain@alumni.duke.edu> wrote:

> Gary Tully, does the first change Sergiy referenced (
>
> http://mail-archives.apache.org/mod_mbox/activemq-commits/201403.mbox/%3C58f67097f342495e921e1a25e951aec6@git.apache.org%3E
> )
> really disable CLIENT_ACKNOWLEDGE from 5.10 onward, or is he
> misunderstanding the change you made?  If he's got it right, can you please
> explain why that option is no longer supported?
>
> On Tue, Nov 4, 2014 at 7:37 AM, sbarlabanov <contact@sergiy-barlabanov.de>
> wrote:
>
> > I double checked everything and did a little bit debugging.
> > According to the current state of ActiveMQ code (5.10) , it may indeed
> > loose
> > acknowledgements.
> >
> > 1. Since 5.10 CLIENT_ACKNOWLEDGE is ignored in the application server -
> see
> > the commit adb49f56 by Gary from 15.03.2014. This was quite a strange
> > commit, since this was a very important change breaking the previous
> > behavior even if it had not been really spec conform - it did work since
> > years and suddenly it was changed without any corresponding Jira and any
> > public information.
> > Now AUTO_ACKNOWLEDGE is used instead.
> >
> > 2. Despite http://activemq.apache.org/async-sends.html stating that
> > persistent messages are sent synchronously outside a transaction, the
> ACKs
> > are sent ASYnchronously outside a transaction in an application server by
> > default (and I did not find any property which would change this
> behavior).
> > Since the ACKs are sent asynchronously, they may be lost obviously. And
> the
> > corresponding messages will be redelivered. This is quite a big pain
> since
> > everybody would expect an acknowledge of a persistent message to be
> > synchronous regardless whether it is AUTO_ACK or CLIENT_ACK.
> >
> > So the workaround in our case is to use JTA transactions instead of
> > CLIENT_ACKNOWLEDGE and Message#acknowledge. This would be at least more
> > spec
> > conform.
> >
> > But nevertheless it would be nice to see any comments from ActiveMQ
> > developers about points 1 and 2 I described above.
> >
> >
> >
> > --
> > View this message in context:
> >
> http://activemq.2283324.n4.nabble.com/ActiveMQ-redelivering-acknowledged-messages-tp4686898p4686933.html
> > Sent from the ActiveMQ - User mailing list archive at Nabble.com.
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message