This table stores the cache expiration information for users, groups, and roles. You can force a cache expiration by changing the datetime value.
For every item there are three different expiration timestamp fields (ExpireOn, MembersExpireOn and ContainersExpireOn). There are also three main methods on the Identity Service (GetIdentity, GetIdentityMembers, and GetIdentityContainers). These relate to the three expiry timestamp fields mentioned above:
- ExpireOn is updated if the GetIdentity method is called (e.g. a Get User Details call on UMUser SmartObject).
- MembersExpireOn is updated when GetIdentityMembers is called. (e.g. Get Group Users call on UMUser SmartObject).
- ContainersExpireOn is updated when GetIdentityContainers is called (e.g. OpenWorklist call). This returns all the groups and roles for a user and recursively gets roles and groups for each of the direct containers.
For a group, notice that the MembersExpireOn and ExpireOn fields are refreshed when a group is requested to be resolved (for example, when a new task is assigned to the group (it refreshes the group membership and group properties respectively), or an Email event that sends an email to the group). Other possibilities include the UMUser SmartObject when executing the GetGroupUsers method. On the other hand, when accessing your worklist, the user’s ExpireOn and the ContainersExpireOn fields are refreshed. ExpireOn refreshes the identity Properties XML field and ContainersExpireOn refreshes the groups and roles that the user belongs to. The MembersExpireOn field does not change and its value originates from the first time the Identity Service is used for the user.
If you want to refresh the cache items, set all three expiry dates to some time in the past for the each identity.
There is a Dynamic flag for each identity but it only applies to system roles. If you set it to True, the CacheTimeout setting is ignored and instead uses the dynamicCacheTimeout settings (30s by default). Queries are queried every 30 seconds. This is useful for keeping worklist items current when users are removed from or added to a K2 role. However, there is a performance impact when identities are resolved because dynamic identities are refreshed before members or containers are selected.
Do not delete values from the Identity.Identity table. Other product components rely on the ID’s in this table. This is also where the system roles are saved. If you delete the records, the actual roles are deleted as well.