If planning a skip-level upgrade, be sure to also review the upgrade notes in the following sections. Upgrade notes for subsequent versions of Identity Manager also apply to your upgrade.
As of version 7.1.1, Identity Manager User Extended Attributes fully support multi-valued attributes. (ID-14863)
You can add a multi-valued user extended attribute to the accounts list table, and it will render the list without error. However, attempting to sort on that column will yield the following error:
java.lang.ClassCastException: java.util.ArrayList
An attribute condition that refers to a multi-valued extended attribute will evaluate correctly for a user object only after that user object has been re-serialized. If you want such an attribute condition to evaluate correctly for all user objects, then you must re-serialize all user objects. See Refreshing User Objects in the following section for instructions.
Certain types of changes require an administrator to refresh all User objects. For example, you must refresh all User objects when you change the inline attributes for Type.USER in RepositoryConfiguration. Whenever you mark an attribute as queryable or summary in the IDMSchemaConfiguration object, you must refresh all User objects for the change to affect older, unmodified objects. The same logic applies when a new version of Identity Manager adds a new attribute, or when a new version of Identity Manager changes the values of an existing attribute— the upgrade process or an administrator must refresh all User objects for the change to affect older, unmodified objects.
There are three ways to reserialize existing users:
Modify an individual User object during normal operations.
For example, opening a user account through the user interface and saving it with or without modifications.
Disadvantage: This method is time-consuming, and the administrator must be meticulous to ensure all existing users are reserialized.
Use the lh refreshType utility to reserialize all users. The refreshType utility’s output is a refreshed list of users.
lh console
refreshType User
Disadvantage: Because the refreshType utility runs in the foreground and not the background, this process can be time-consuming. If you have a lot of users, reserializing them all takes a long time.
Use the Deferred Task Scanner.
Before running the Deferred Task Scanner process, you must edit the System Configuration object using the Sun Identity Manager Integrated Development Environment (IDE) or some other method.
Search for ’refreshOfType’ and remove the attributes for ’2005Q4M3refreshOfTypeUserIsComplete’ and ’2005Q4M3refreshOfTypeUserUpperBound’.
After editing the System Configuration object, you must import that object to repository for your changes to be present.
Disadvantage: This method causes the next Deferred Task Scanner run to take a long time because it examines and rewrites almost every User object. However, subsequent Deferred Task Scanner runs should execute at normal speed and duration.