activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ld4711 <ext-lars.dit...@here.com>
Subject Broken transaction when using async send
Date Mon, 07 Apr 2014 12:03:28 GMT
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: http://activemq.2283324.n4.nabble.com/Broken-transaction-when-using-async-send-tp4680119.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Mime
View raw message