adclient.cache.expires.user
This configuration parameter specifies the number of seconds before a user
object in the domain controller cache expires. If this parameter is not
specified, the object cache expiration value from adclient.cache.expires is used.
How the Domain Controller Cache Works
Every user object retrieved from Active Directory is stamped with the system time when it enters the domain controller cache. Once an object expires, if it is needed again, the agent contacts Active Directory to determine whether to retrieve an updated object (because the object has changed) or renew the expired object (because no changes have been made). To make this determination, the agent checks the highest update sequence number (USN) for the expired object. If the value has changed, the agent retrieves the updated object. If the highest USN has not changed, the agent resets the object’s timestamp to the new system time and retrieves the object from the cache.
If the agent is unable to contact Active Directory to check for updates to an expired object—for example, because the computer is disconnected from the network—the agent returns the currently cached object until it can successfully contact Active Directory.
When a user logs in, the user's group membership is retrieved from the Privilege Authorization Certificate (PAC), not the cache. User attributes and zone data are retrieved from the cache. If the cache entry for the user has expired, adclient refreshes the data synchronously and blocks the user's login attempt until the refresh is complete.
Considerations for Choosing the Value
Increasing the value of this parameter can yield performance benefits. The number of AD queries is reduced, because data is served from the cache instead. The load on the AD server is reduced. In addition, enumeration responses are faster, because looking up data from the cache is faster than a live query.
Related Parameters
The adclient.cache.expires.user parameter works in combination with other related parameters:
-
adclient.cache.expiresis the base parameter which governs this set of parameters. It defines the default cache expiration time for all types of objects. Its setting is used if it is not overridden by other parameters, such asadclient.cache.expires.user. -
adclient.cache.expires.user.membershipcan be used to override the setting inadclient.cache.expires.userfor the amount of time before a user’s group membership information in the domain controller cache expires.
Setting adclient.cache.expires.user
In most cases, you set this configuration parameter using group policy. You can, however, set it manually in the configuration file if you are not using group policy or want to temporarily override group policy.
If you are manually setting this parameter, the parameter value must be a positive integer. The following example sets the cache expiration time for user objects to 1800 seconds (30 minutes):
adclient.cache.expires.user: 1800
The default cache expiration time for all types of object is defined
with the adclient.cache.expires parameter. If you explicitly set the
adclient.cache.expires.user parameter, its value overrides the default value for
cached objects.