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]
-----------------------------------------------------------------------------

Reply via email to