Description
A session may be optionally specified as transacted. Each transacted
session supports a single series of transactions. Each transaction groups a
set of produced messages and a set of consumed messages into an atomic
unit of work. In effect, transactions organize a session’s input message
stream and output message stream into a series of atomic units. When a
transaction commits, its atomic unit of input is acknowledged and its
associated atomic unit of output is sent. If a transaction rollback is done,
its produced messages are destroyed and its consumed messages are
automatically recovered.
A transaction is completed using either its session’s Commit() or
Rollback() method. The completion of a session’s current transaction
automatically begins the next. The result is that a transacted session
always has a current transaction within which its work is done.