Using the User Transaction Management MBean, a client can demarcate transaction boundaries for a subset of profile-management operations, by:
- 
starting a user transaction
 - 
performing some profile-management operations, across a number of different profiles (in the context of that transaction)
 - 
then committing the transaction — resulting in an atomic update of profile state.
 
Binding user transactions with authenticated subjects
The SLEE binds user transactions to the java.security.auth.Subject associated with the invoking thread.
For all user-transaction management, the thread invoking the management operation must therefore be associated with an authenticated subject.
The command console interface handles this task as part of the client-login process.
(Other user-provided m-lets installed in the Rhino SLEE will need to take care of this requirement in their own way.)
Executing Profile Provisioning operations in a user transaction
The following operations on the
Profile Provisioning MBean support execution in a user transaction:
createProfile,
createProfiles,
removeProfile,
getDefaultProfile,
getProfile, and
importProfiles
Furthermore, accessing a Profile MBean while a user transaction is active:
- 
enlists that MBean into that user transaction
 - 
changes that MBean to the read/write state
 - 
puts any changes to the profile in context of the user transaction.
 
| 
 | 
 Committing or rolling back profiles enlisted in user transactions 
You cannot invoke the   | 
