Updated: July 19, 2016
Applies To: Windows 10, Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server Technical Preview, Windows Vista
In the Microsoft Windows 2000 Server, Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008, Windows°7, Windows Server 7, Windows 8, Windows Server 8 operating systems, the DTC is a system service that is tightly integrated with COM+. To help make distributed transactions work with increasingly seamless integration, COM+ directs the DTC on behalf of an application. This makes it possible to scale transactions from one to many computers without adding special code.
When a COM+ application requires a transaction to span multiple resource managers, the DTC makes it possible by generating a transaction ID, managing transaction-related communications, and enlisting resources. When the DTC enlists a resource in a transaction, it extends the transaction's protection to that resource.
To perform specialized tasks within a distributed transaction, the DTC architecture includes the following elements:
The DTC transaction manager
The DTC log
The DTC proxy
The Component Services administrative tool
The DTC Files
Integrated security allows an Oracle database to rely on Windows authentication to validate database users. Users can maintain one login ID and password for both Windows and Oracle. If you use integrated security, you must add the computer account of the computer on which the DTC runs to the list of accounts that are allowed to connect to the Oracle database. This is required because during database recovery, the DTC opens your Oracle database to tell it the outcome of in-doubt transactions.
If your components always supply a login ID and password when connecting to Oracle databases, you are not using integrated security. This is true whether your applications specify the login ID and password directly or indirectly through a DSN. In either event, you are not using integrated security and do not need to configure the DTC to run under a login ID and password to connect to an Oracle database.
The DTC transaction manager is responsible for coordinating DTC transactions. Usually, one DTC transaction manager process is present on each resource manager. However, the system administrator can choose to configure a system to depend on a DTC transaction manager running on another resource manager. See the Help documentation for the Component Services administrative tool on your system for step-by-step instructions on how to do this.
The DTC transaction manager maintains a DTC log file on disk on its local resource manager. The DTC log file captures the following information:
The identity of the transaction.
The resource managers that are enlisted with the transaction manager.
The DTC transaction manager that imported the transaction to this node, if the transaction was imported to this node from another node.
The transaction managers that were sent the exported transaction, if the transaction was exported from this node to other nodes.
The outcome of the transaction and which resource managers and transaction managers have been told of the transaction outcome.
For more information, see Log File Management.
The information the DTC maintains in the log file is usually short lived. All information regarding the transaction can be forgotten after the transaction commits or aborts and after all of the subordinate transaction managers and resource managers have been told of the transaction outcome. Therefore, the DTC log file is implemented as a simple circular file: The DTC writes to the log file sequentially, and when it reaches the end of the log file it continues writing at the beginning of the file overwriting obsolete information.
Although most of the information the DTC maintains in the log file is short-lived, some information is long lived. The DTC avoids overwriting and thereby losing this long-lived information by periodically cloning it to the currently active part of the log file. The process of cloning long-lived information to the log is referred to as check pointing. The DTC performs check pointing periodically.
The DTC proxy DLL (Msdtcprx.dll) implements the DTC interfaces. Applications call DTC interfaces to initiate, commit, abort, or inquire about transactions. Resource managers call DTC interfaces to enlist in transactions, to propagate transactions from process to process or from system to system, and to participate in the two-phase commit protocol.
Applications and resource managers communicate with the DTC transaction manager by calling the interfaces implemented by the DTC proxy.
The Component Services administrative tool implements the graphical user interfaces you can use to configure, monitor, and manage the DTC. The Component Services administrative tool communicates with the DTC transaction manager via RPC. See the Help documentation for the Component Services administrative tool on your system for detailed information about performing administrative tasks related to managing and configuring the DTC.
The Component Services administrative tool can be used to manage a DTC transaction manager on either a local or a remote system. This makes it possible to manage a collection of DTC systems from a central location.
You can find the Component Services administrative tool in the Control Panel, under Administrative Tools, which is located under System and Security.
The DTC includes the files described in the following table.
|msdtc.exe||DTC console program|
|msdtclog.dll||DTC log manager DLL|
|msdtcprf.h||DTC performance monitor header file|
|msdtcprf.ini||DTC performance monitor .ini file|
|msdtcprx.dll||DTC OLE Transactions interface proxy DLL|
|msdtcstp.dll||DTC setup DLL|
|msdtctm.dll||DTC transaction manager DLL|
|msdtcui.dll||DTC administrative component DLL|
|msdtcuiu.dll||DTC administrative component DLL|
|mtxclu.dll||DTC and MTS clustering support DLL|
|oletx2xa.h||DTC APIs header file|
|transact.h||DTC APIs header file|
|txcoord.h||DTC APIs header file|
|txdtc.h||DTC APIs header file|
|xolehlp.dll||DTC helper APIs DLL|
|xolehlp.h||DTC APIs header file|
For additional information on transaction managers, resource managers, and resource dispensers, see the DTC Developers Guide.