I'm trying to understand the concept of transaction messaging on MSMQ as well as transaction support in wcf.
For Queues with transaction support, does it mean the following set of operations will be automatic?
- Client A on Machine 1 writes a row in its application database that message sent to queue.
- Creates/Sends a Order Create message to a queue (say MSMQ).
- The MSMQ message gets picked up by Client B on Machine 2.
- Client B creates an Order Row in its own application Database?
If I do all the above step in a distributed transaction, does it mean all 4 steps will either fail or succeed atomically?
Or transaction will only apply from step 1 - 2?
Similarly, if say WCF was involved above instead of the MSMQ, will all steps be atomic i.e within a transaction?