From: Ben on
Hi,

If a C# app. uses System.Transactions to store data in sqlserver and msmq,
and it is deployed to machine A; sqlserver is in machine B; msmq is in
machine C. is msdtc required to be installed in machine A, B, and C ?

If msdtc is required in boxes other than the sqlserver box, is there a
spearate download to install the msdtc? As my understanding is that msdtc
comes with full sql server installation, it is not a feature of Windows.

Thanks,
Ben


From: Mr. Arnold on
Ben wrote:
> Hi,
>
> If a C# app. uses System.Transactions to store data in sqlserver and msmq,
> and it is deployed to machine A; sqlserver is in machine B; msmq is in
> machine C. is msdtc required to be installed in machine A, B, and C ?
>
> If msdtc is required in boxes other than the sqlserver box, is there a
> spearate download to install the msdtc? As my understanding is that msdtc
> comes with full sql server installation, it is not a feature of Windows.
>
> Thanks,
> Ben
>
>

The Distributed Transaction Coordinator is a service on the Windows NT
based O/S(s) that must be activated for distributive transactions over a
network between machines.

On server and workstation business class versions of the Windows NT
based O/S(s), such as Win XP, 2k3, Vista, 2k8, etc the service is
present. In order for an application running on one machine to use
distributed transactions over the network with another machine, the
client and the server machines must both be using DTC with the proper
authentication credentials used between the two machines.

In other words and for sure, if there is a Web server farm as an example
the has ASP.NET Web applications running on them that need transactions
with a SQL server machine on the network, the all machines involved must
have the DTC service enabled.

I don't know about MSMQ, but I suspect DTC needs to activated too on the
machines if the application using MSMQ can go ito some kind of queue
transaction state between client and server machines.



From: Arne Vajhøj on
On 05-06-2010 13:56, Mr. Arnold wrote:
> I don't know about MSMQ, but I suspect DTC needs to activated too on the
> machines if the application using MSMQ can go ito some kind of queue
> transaction state between client and server machines.

I don't know about MSDTC and MSMQ, but in general it is a very
common sequence of operation to do:

begin
read from MQ
write to DB
commit or rollback

because then the data will be read from the MQ again
if the write to the DB fails for whatever reason.

Arne