Modification conflicts resolve automatically and no manual action is required. The LDAPModify operation allows the following modification types:

  • Add of one or more values
  • Delete of one or more values or the entire attribute
  • Replacement of all values
Note:

Replication does not currently support the increment LDAP modification type.

The following illustration presents a modification conflict scenario.

Canvas 1 Layer 1 dn: uid=babs.jensen, … changetype: modify add: displayName displayName: Babs Jensen Data Store A Directory 3 Server 4 LDAP Client A 5 LDAP result: success Directory 4 6 dn: uid=babs.jensen, … changetype: modify add: displayName displayName: Barbara Jensen Server 4 Data Store B 5 Conflict resolution: dn: uid=babs.jensen, … changetype: modify replace: displayName displayName: Barbara Jensen 7 LDAP Client B LDAP result: success 2 1 LDAP Replication

Processing steps

  1. LDAP client A sends a modify request to Directory Server A.
  2. LDAP client B sends a conflicting modify request to Directory Server B.
  3. Directory Server A applies the modification.
  4. Directory Server B applies the modification.
  5. The LDAP clients receive successful responses.
  6. Replication propagates the updates.
  7. Conflict resolution on Directory Server A updates the entry to reflect the value on Directory Server B.

    Conflict resolution on Directory Server B ignores the update received from Directory Server A.

The following table shows the result of a modification conflict depending on the type of updates that occur. For all of the operations in the table, assume the following:

  • LDAP Modify 1 was applied at Directory Server 1.
  • LDAP Modify 2 was applied at Directory Server 2.
  • LDAP Modify 1 occurred shortly before LDAP Modify 2, so that Directory Server 2 received LDAP Modify 1 after LDAP Modify 2 was applied.
Modification Conflict Scenarios
Modify 1 Modify 2 Result of Conflict Resolution at Directory Server 2 When Modify 1 is received

Add of a single-value attribute

Add of the same attribute with a different value

Incoming Modify is ignored.

Delete of a single-valued attribute

Replacement of the value of the same attribute

Incoming Delete is ignored.

Replacement of a single-valued attribute

Delete of the same attribute

Incoming Replacement is ignored.

Delete some values from a multi-valued attribute

Delete some values from a multi-valued attribute

Incoming Delete is ignored.

Delete a multi-valued attribute

Delete of the same multi-valued attribute

Incoming Delete is ignored.

Delete a multi-valued attribute

Add the same multi-valued attribute

Incoming Delete is ignored.

Delete value X from a multi-valued attribute

Delete value X from the same multi-valued attribute

Incoming Delete is ignored.

Delete value X from a multi-valued attribute

Add value Y to the same multi-valued attribute

Delete of value X is applied.

Delete value X from a multi-valued attribute

Delete value Y from the same multi-valued attribute

Delete of value X is applied.

Delete value X from a multi-valued attribute

Replace all values of the same multi-valued attribute

Incoming Delete is ignored.

Add of values X and Y to a multi-valued attribute

Delete value X from the same multi-valued attribute

Only value Y is added.

Delete value X from a multi-valued attribute

Add of values X and Y to the same multi-valued attribute

Incoming Delete is ignored.