NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Transaction Boundaries

A transaction has a beginning, an end, and occurs exactly once. As a transaction executes, various transaction-aware resources may participate or enlist into the transaction. If within the scope of a transaction your application connects to a database, for example, the transaction flows to that resource and extends the transaction boundary to include the database server. Within a given transaction boundary, all participating resources share the same transaction identifier.

You can design transactions to span processes and computers. Thus, a transaction boundary is an abstraction for managing consistency across process and computer boundaries.

Your control over a transaction boundary varies depending on the transaction model you select for your application: manual or automatic. In a manual transaction, you control transaction boundaries with explicit instructions to begin and end the transaction. From within one transaction boundary, you can begin a second transaction, called a nested transaction. The parent transaction does not commit until all its subordinate transactions commit.

An automatic transaction manages transaction boundaries for you, based on a declarative attribute set for each component. A transaction automatically flows to objects instructed to participate in a transaction and bypasses objects instructed to execute outside a transaction. You cannot nest transactions when using the automatic transaction model.

See Also

Transaction Models