How OLE Transactions Differs from X/Open DTP
The OLE Transactions standard was employed over the X/Open DTP for the following reasons:
- Microsoft’s computing model employs distributed, transaction-protected, object-based components that communicate using OLE interfaces. Our transaction interfaces needed to be object-based to fit this model. The OLE Transactions standard is object-based, while the X/Open standard is not.
- We intend to extend the transaction model to support a wide variety of transaction-protected resources. This includes documents, images, voice, queued messages, workflow and other non-database resources. To do this, we must extend the transaction model to provide richer transaction capabilities. OLE Transactions permits us to make these extensions.
- OLE Transactions supports multi-threaded programs. A program and its threads can create and manage as many concurrent transactions as they choose. XA is oriented toward a single thread of control.
- The existing X/Open standard is loosely written. Products that claim to conform to the standard differ among themselves. There is no mechanism in the standard for supporting heuristic transaction outcomes. Unlike OLE Transactions, the X/Open standard does not support recovery that is initiated by the resource manager; therefore, all recovery must be initiated by the transaction manager.
MS DTC provides a measure of interoperability with products that comply with the X/Open DTP XA standard. See the Interoperability with Products that Comply with the X/Open DTP XA Standard topic for more information.