You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by biondo <ri...@imagicle.com> on 2014/08/25 15:52:47 UTC

NMS ActiveMQ: transactions involving multiple queues in HA scenario

Hello to everybody,
In my scenario I have a cluster of 4 brokers in a master/slave
configuration. Clients consist of .NET services, therefore i want to use
Apache.NMS.ActiveMQ library to enable my C# application to connect to the
brokers.

I have a service that acts as consumer of a queue, Q1, and as a producer for
a queue Q2: the service needs to ack a message received from Q1 and publish
multiple messages on Q2. I want to do that in a transactional and reliable
manner, avoiding duplication or loss of messages!

Are this kind of transactions supported by Apache.NMS.ActiveMQ?

Overview page says <http://activemq.apache.org/nms/apachenms.html>  :
"NMS API currently supports all of the features of JMS in a simple pure C#
API and implementation *apart from XA*. Current features include:
...
*support for transactions* (sending and acknowledging multiple messages in
an atomic transaction)
..."
Do I need XA support?
When method session.commit returns are all changes available on all slaves?

Thanks,
Biondo



--
View this message in context: http://activemq.2283324.n4.nabble.com/NMS-ActiveMQ-transactions-involving-multiple-queues-in-HA-scenario-tp4685008.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Re: NMS ActiveMQ: transactions involving multiple queues in HA scenario

Posted by Timothy Bish <ta...@gmail.com>.
On 08/25/2014 09:52 AM, biondo wrote:
> Hello to everybody,
> In my scenario I have a cluster of 4 brokers in a master/slave
> configuration. Clients consist of .NET services, therefore i want to use
> Apache.NMS.ActiveMQ library to enable my C# application to connect to the
> brokers.
>
> I have a service that acts as consumer of a queue, Q1, and as a producer for
> a queue Q2: the service needs to ack a message received from Q1 and publish
> multiple messages on Q2. I want to do that in a transactional and reliable
> manner, avoiding duplication or loss of messages!
>
> Are this kind of transactions supported by Apache.NMS.ActiveMQ?
>
> Overview page says <http://activemq.apache.org/nms/apachenms.html>  :
> "NMS API currently supports all of the features of JMS in a simple pure C#
> API and implementation *apart from XA*. Current features include:
> ...
> *support for transactions* (sending and acknowledging multiple messages in
> an atomic transaction)
> ..."
> Do I need XA support?
> When method session.commit returns are all changes available on all slaves?
>
> Thanks,
> Biondo
>
>
>
> --
> View this message in context: http://activemq.2283324.n4.nabble.com/NMS-ActiveMQ-transactions-involving-multiple-queues-in-HA-scenario-tp4685008.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
The NMS.ActiveMQ library supports local transactions meaning you can 
consume a message and produce additional messages in the context of a 
single transacted session and then commit the work.  The messages you 
produce are not dispatched from the broker until you commit the local 
transaction so a rollback from the client will prevent those messages 
from being dispatched at all.

-- 
Tim Bish
Sr Software Engineer | RedHat Inc.
tim.bish@redhat.com | www.redhat.com
skype: tabish121 | twitter: @tabish121
blog: http://timbish.blogspot.com/