Here is an excerpt from my requirements doc:
Transactions
In addition to method calls, a session may include nested transactions. The
maximum number of transactions that can be nested is TBD. There are tokens in
the session stream that are transaction start and end tokens. The host is free
to start a transaction on a session between normal operations, and may
subsequently open nested transactions. All transactions consist of the
following steps:
1. The transaction is opened.
2. A set of operations are made.
3. The transaction is either aborted or committed.
If a transaction is aborted all database state is reset ("rolled-back") to its
value at the time the transaction was opened.
Nested transactions abort or commit relative to their parent transaction. In
the case of an aborted transaction, the database state is rolled back to the
point where the transaction was started. (This is true whether or not the
transaction is nested.) In the case of a commit, the nested transaction’s
changes
become part of its parent transaction, as if the nested transaction boundaries
had never been established.
A commit of a nested transaction does not make a commit that necessarily
persists since the parent transaction is not yet ended. All transactions must
be closed before data is written to the database. This may occur before the end
of a session.
The device must guarantee that a transaction completely commits to media
(persists) or completely aborts. This means that the device must arrange that
if a power cycle, reset, or other event, occurs in the middle of a commit, that
when the device comes back up the commit is either finished or all the changes
are aborted. This guarantees database consistency and prevents power-off or
reset attacks.
Ray
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------