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:
createProfileTable
,
removeProfileTable
,
getProfileTables
,
getProfileTables(ProfileSpecificationID)
createProfile
,
createProfiles
,
removeProfile
,
getDefaultProfile
,
getProfile
,
getProfilesByIndexedAttribute
,
getProfilesByAttribute
,
getProfilesByStaticQuery
getProfilesByDynamicQuery
, 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 |