Transaction Boundaries

A transaction boundary defines the scope of a transaction. Objects inside a transaction boundary share a common transaction identifier.

As a transaction executes, various transaction-aware resources may participate in the transaction. For example, if within the scope of a transaction, your application connects to a database, the transaction flows to that resource and extends the transaction boundary to include the database server. 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 Processing Fundamentals | Transaction Models