PingDirectory

Fixing a naming conflict

About this task

In this example, a naming conflict was encountered when the replica attempted to replay an ADD of uid=user.200,ou=people,dc=example,dc=com. Because of this conflict, the server returns a replication conflict message. See the following example message.

[18/Feb/2010:14:53:12 -0600] category=EXTENSIONS severity=SEVERE_ERROR
msgID=1880359005 msg="Administrative alert type=replication-unresolved-conflict
id=bbd2cbaf-90a4-42af-94a8-c1a42df32fc6
class=com.unboundid.directory.server.replication.plugin.ReplicationDomain
msg='An unresolved conflict was detected for DN uid=user.200,ou=People,dc=example,dc=com.
The conflicting entry has been renamed to
entryuuid=69807e3d-ab27-43a3-8759-ec0d8d6b3107+uid=user.200,ou=People,dc=example,dc=com'"

The PingDirectory server prepends the entryUUID to the DN of the conflicting attribute and adds a ds-sync-conflict-entry auxiliary object class to the entry to aid in search.

To resolve the conflict:

Steps

  1. Search for any entry that has the ds-sync-conflict-entry objectclass and returns only the DNs that match the filter.

    Example:

    $ bin/ldapsearch --baseDN dc=example,dc=com --searchScope sub \
      "(objectclass=ds-sync-conflict-entry)" "1.1"

    Result:

    The search results display the conflicting entry for uid=user.200.

    dn: entryuuid=69807e3d-ab27-43a3-8759-ec0d8d6b3107+uid=user.200,ou=People,dc=example,dc=com
    
    dn: entryuuid=523c430e-a870-4ebe-90f8-9cd811946420+uid=user.200,ou=People,dc=example,dc=com

    Conflict entries are not returned unless the objectclass=ds-sync-conflict-entry is present in the search filter.

  2. Compare the conflict entry with the target entry.

  3. Apply the difference in two ways:

    Choose from:

    • Use the ldapmodify tool with the Replication Repair Control.

      You can also delete the conflict entry using this command.

    • Run bin/ldapmodify with the Replication Repair Control to make the fix.

      When making changes using the Replication Repair Control, the updates are not propagated through replication. Examine each replica individually, and apply the necessary modifications using the request control.

      Example:

      $ bin/ldapmodify -J "1.3.6.1.4.1.30221.1.5.2" \
        --filename difference.ldif