The Directory Server provides two useful changelog configuration properties: changelog-max-before-after-values and changelog-include-key-attribute.
  • changelog-max-before-after-values. Setting this property to a non-zero value causes all of the old values and all of the new values (up to the specified maximum) for each changed attribute to be stored in the changelog entry. The values will be stored in the ds-change-log-before-values and ds-changelog-after-values attributes on the changelog entry. These attributes are not present by default.
    Note: The changelog-max-before-after-values property can be expensive for attributes with hundreds or thousands of values, such as a group entry.

    If any attribute has more than the maximum number of values, their names and number of before/after values will be stored in the ds-changelog-attr-exceeded-max-values-count attribute on the changelog entry. This is a multi-valued attribute whose format is:

    attr=attributeName,beforeCount=100,afterCount=101
    where "attributeName" is the name of the attribute and the "beforeCount" and "afterCount" are the total number of values for that attribute before and after the change, respectively. This attribute indicates that you need to reset the changelog-max-before-after-values property to a higher value. When this attribute is set, an alert will be generated.
    Note: If the number of values for an attribute exceeds the maximum value set by the changelog-max-before-after-values property, then those values will not be stored.
  • changelog-include-key-attribute. This property is used for correlation attributes that need to be synchronized across servers, such as uid. It causes the current (after-change) value of the specified attributes to be recorded in the ds-changelog-entry-key-attr-values attribute on the changelog entry. This applies for all change types. On a DELETE operation, the values are from the entry before they were deleted.

    The key values will be recorded on every change and override the settings configured in changelog-include-attribute, changelog-exclude-attribute, changelog-deleted-entry-include-attribute, or changelog-deleted-entry-exclude-attribute.