Transaction Processing Technology

The primary technology that allows Active Server Pages (ASP) to participate in a transaction is Component Services, which provides IIS with transaction services as well as an environment for hosting component instances. One of the benefits of this environment is the ability to create attributes for individual component instances. When IIS compiles script in an ASP page, a new instance of the IIS Web Application Manager (IISWAM) is created. IISWAM is a Component Object Model (COM) component that IIS uses to manage applications. If the script contains the @TRANSACTION directive, the instance of IISWAM will be declared within the transaction environment with an appropriate transaction property. For example, if you include @TRANSACTION = Required in your script, you are telling Component Services that the instance of IISWAM that it creates should be run in a transaction. If the script in an ASP page creates instances of any other components that have been registered with Component Services, Component Services will treat them as part of the same transaction. The following diagram illustrates the relationship between ASP and IISWAM.

IIS Web Application Manager

Component Services provides transaction service to IIS through two different layers. At the lowest layer, Component Services interacts with the Microsoft® Distributed Transaction Coordinator (MS DTC) to guarantee that transactions meet the ACID properties (Atomic, Consistent, Isolated, Durable) of a reliable transaction processing system. Component Services links component instances to MS DTC through two mechanisms: resource managers and resource dispensers.

A resource manager is a system service that manages durable data. Component Services supports resource managers that implement either the OLE Transactions protocol, such as Microsoft® SQL Server 6.5, or the X/Open DTP XA standard. Resource dispensers are similar to resource managers in that they work with components to share state information. However, this information is not durable. For example, resource dispensers can manage pools of database connections for components that use standard open database connectivity (ODBC) interfaces. The ODBC 3.0 Driver Manager is the resource dispenser for ODBC connections.

For more information on Component Services transactions, see Understanding Transactions. To view samples of transactional scripting, see ASP Transaction Services in ASP Samples.