Understanding MS DTC Resources in Windows Server 2008 Failover Clusters
Applies To: Windows Server 2008
In Windows Server 2008, the Microsoft Distributed Transaction Coordinator (MS DTC) component provides support for active/active clusters in which a clustered MS DTC resource coordinates distributed transactions across a Windows failover cluster group.
Background information about active/active cluster support
Note
For information about how Windows Server 2008 implements MS DTC support for active/active clusters, review this section. It describes failover clusters generally and provides background information about active/active clustering.
Windows server clusters make it possible for you to aggregate a number of nodes to host and run any resources that you have enabled for clustering. (Nodes are individual servers that are running a Windows Server operating system.) The cluster server is a virtual server for the clustered resource, and it appears as a single server that is running Windows Server 2008 to client applications. In the event of a node failure, remaining nodes in the cluster group take on additional processing operations to compensate for the loss of that node.
Note
Failover is the process of adjusting to node failure. Failback is the process of adjusting to node restoration. For more information about how failover and failback works in Windows Server 2003, see Understanding MS DTC Resources in Windows Server 2003 Failover Clusters.
In failover cluster topologies for Windows Server, there are two categories of clusters: active/passive clusters and active/active clusters. In active/passive clusters, the cluster includes active nodes and passive nodes. The passive nodes are used only if an active node fails. In active/active clusters, all nodes are active.
Earlier versions of Windows Server, such as Windows Server 2003 and Windows 2000 Server, support clustering of an MS DTC resource in active/passive clusters. This support has several limitations, which are described in Understanding MS DTC Resources in Windows Server 2003 Failover Clusters.
Clustering in earlier Windows operating systems supports only one MS DTC resource in each cluster. This has the following effects:
Isolation issues may occur, as otherwise disparate applications must share the same DTC for coordination.
Because only one MS DTC resource serves the entire cluster, if anything goes wrong with the clustered DTC because of the failure of one application, the failure can affect all applications that share coordination of their distributed transactions through the clustered MS DTC.
Performance can be degraded below the ability of some applications to tolerate and successfully handle failover situations.
For example, when the clustered MS DTC resource must coordinate a transaction for an application that is not running on the same node as the clustered DTC, latency in transaction coordination messaging can exceed the timeout requirements of the application. Configuring all transacted applications to run in the same node as the clustered MS DTC resource can resolve this performance bottleneck to some extent. However, the problem is not fully resolved. Because node failover conditions apply to the cluster, this configuration cannot be preserved.
In Windows Server 2008, you can create multiple DTCs in a failover cluster using the following steps:
Create multiple cluster groups in the failover cluster.
Create a clustered MS DTC resource for each group.
To fully exploit the processing power of the cluster, you must create as many groups as there are nodes in the cluster and evenly distribute the group to the nodes. The following section describes the benefits of this approach.
Benefits of using active/active clusters with distributed transactions
As noted earlier, Windows Server 2008 provides support for active/active clustering. The benefits of active/active clusters for clustering an MS DTC resource are as follows:
Failure of one clustered application does not necessarily affect other clustered applications.
In Windows Server 2008, you can create one DTC for each cluster group. This makes it possible for you to have disparate applications that each run with their own MS DTC resources on each node in the cluster.
There are no limitations on configuration ordering for the clustered MS DTC resource.
Because it is possible in Windows Server 2008 to have a DTC running on each node, some problems, such as installation of COM+ applications and cluster configuration ordering, are no longer an issue. The virtualization layer for the Distributed Transaction Coordinator service (MSDTC) in Windows Server 2008 supports the running of multiple instances of Msdtc.exe. You do not have to use the same transaction coordinator if the original instance becomes unavailable. This makes it possible for you to use the local DTC on each node in a cluster for applications that do not require that clustering to meet availability needs.
Better application performance is possible.
Because clustered applications can now have a clustered MS DTC resource that is located close to them, earlier performance issues with latency are mitigated.
Examples of MS DTC deployment in Windows Server 2008 failover clusters
This section describes clustering scenarios that represent changes in how you can deploy MS DTC in a Windows server cluster. The key modifications to MS DTC clustering support are as follows:
The local DTC can be active on all nodes in a failover cluster, independent of any additional MS DTC resources that might exist.
Multiple, clustered MS DTC resources can be active at the same time in a failover cluster.
You can have this configuration while having one clustered MS DTC resource that serves as the default MS DTC resource for the entire failover cluster.
Example: Using a local DTC
In a Windows Server 2008 failover cluster, you can choose to use a local DTC on any server node in the failover cluster, even if a default clustered DTC is configured.
The following illustration shows an example of this type of clustering configuration.
In this configuration, a clustered MS DTC resource is configured for the cluster group, MyClusterGrp1. However, a server application is configured to use the local DTC on the server node shown here. This scenario works well for providing isolation of the DTC to a single node and for applications that do not require the degree of availability that is provided by failover clusters.
Example: Multiple clustered DTCs
In a Windows Server 2008 failover cluster, you have multiple clustered DTCs, with one DTC for each cluster group to enable better performance.
The following illustration shows an example of this type of clustering configuration.
In this configuration, the default clustered MS DTC resource is configured for the cluster group, MyClusterGrp1, and the server application is configured to use this DTC on the server node shown here. This scenario works well for providing availability support because the clustered DTC can have failover to and run on other nodes in the failover cluster group if the active node fails.