activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <>
Subject Re: Broken transaction when using async send
Date Mon, 07 Apr 2014 13:57:47 GMT
there is a related discussion here:

my thinking is that a failure to send async should mark  the
transaction rollbackOnly so that the commit will always fail in that
So you send async in the hope that all is well and the transaction
boundary gives you feedback.

If you need more immediate feedback they a sync Send is needed.
alwaysSyncSend option on the CF

On 7 April 2014 13:03, ld4711 <> wrote:
> In our producer we use JMS transactions to send batches of 1,000 messages to
> the queue. However, we faced lost messages without client notification in
> case of server memory limit constraints (producer flow control). The point
> is that the transactions all committed without exceptions, but messages that
> were sent after the point where the server could not store further messages
> got lost without notice.
> Analyzing the issue showed that we were not aware of the default
> asynchronous send mode. In consequence we did not have set an exception
> listener on the connection factory. But even after remedying that we found
> the following situation:
> 1. Set the broker memory limit to a very small value (1 MB).
> 2. Send 100 messages via producer.
> With that test setup the broker can handle 95 messages. However, due to the
> asynchronous callback the producer is able to commit the transaction BEFORE
> the callback is triggered by the server.
> In consequence it seems that asynchronous sending breaks transactions in
> ActiveMQ and should not be the default mode of processing. Am I missing
> something?
> Thanks,
> Lars
> --
> View this message in context:
> Sent from the ActiveMQ - User mailing list archive at


View raw message