Microsoft Transaction Server (MTS), COM+ 1.0, and the NGWS runtime support the same automatic, distributed transaction model.
Once an ASP+ page, WebMethod, or NGWS class is marked to participate in a transaction, it will automatically execute within the scope of a transaction. You can control an object's transactional behavior by setting a transaction attribute value on the page, Webmethod, or class. The attribute value, in turn, determines the transactional behavior of the instantiated object. Thus, based on the declared attribute value, an object will automatically participate in an existing or ongoing transaction, be the root of a new transaction, or never participate in a transaction at all. (The syntax to declare the transaction attribute varies slightly in a NGWS class, an ASP+ page, and a WebMethod.)
The declarative transaction attribute predicts how an object participates in a transaction, and is something you configure programmatically. Although this declarative level represents the logic of a transaction, it is one step removed from the physical transaction. A physical transaction occurs when a transactional object accesses a data resource, such as a database or message queue. The transaction boundary associated with the object automatically flows to the appropriate resource manager. An associated driver, such as OLE DB, ODBC, or ADO, looks up the transaction in the object's context and enlists in the transaction through the Distributed Transaction Coordinator (DTC). The entire physical transaction occurs automatically.
The following topics describe support for automatic transactions: