PingDirectory

Configure the Notification sync pipe

The following procedure configures a one-way Sync Pipe with a PingDirectory server as the Sync Source and a generic sync destination. The procedure uses the create-sync-pipe-config tool in interactive command-line mode and highlights the differences for configuring a Sync Pipe in notification mode.

Considerations for configuring sync classes

When configuring a Sync Class for a Sync Pipe in notification mode, consider the following:

  • Exclude any operational attributes from synchronizing to the destination so that its before and after values are not recorded in the change log. For example, the following attributes can be excluded: creatorsName, createTimeStamp, ds-entry-unique-id, modifiersName, and modifyTimeStamp. Filter the changes at the change log level instead of making the changes in the Sync Class to avoid extra configuration settings with the following:

    • Use the directory server’s changelog-exclude-attribute property with (+) to exclude all operational attributes (change-log-exclude-attribute:+).

    • Configure a Sync Class that sets the excluded-auto-mapped-source-attributes property to each operational attribute to exclude from the synchronization process.

    • Use the directory server’s changelog-exclude-attribute property to specify each operational attribute to exclude in the synchronization process. Set the configuration using the dsconfig tool on the directory server Change Log Backend menu. For example, setchangelog-exclude-attribute:modifiersName.

  • Use the destination-create-only-attribute advanced property on the Sync Class. This property sets the attributes to include on CREATE operations only.

  • Use the replace-all-attr-values advanced property on the Sync Class. This property specifies whether to use the ADD and DELETE modification types (reversible), or the REPLACE modification type (non-reversible) for modifications to destination entries. If set to true, REPLACE is used.

  • If targeting specific attributes that require higher performance throughput, consider implementing change log indexing. See Synchronize through PingDirectoryProxy servers for more information.

Create the sync pipe

About this task

The initial configuration steps show how to set up a single Sync Pipe from a directory server instance to a generic Sync Destination.

Before starting:

  • Place any third-party libraries in the <server-root>/lib/extensions folder.

  • Implement a server extension for any custom endpoints and place it in the appropriate directory.

Steps

  1. If necessary, start PingDataSync:

    $ bin/start-server
  2. Run the create-sync-pipe-config tool.

    $ bin/create-sync-pipe-config
  3. At the Initial Synchronization Configuration Tool prompt, press Enter to continue.

  4. On the Synchronization Mode menu, select the option for notification mode.

  5. On the Synchronization Directory menu, enter the option to create a one-way Sync Pipe in notification mode from the directory to a generic client application.

Configure the sync source

Steps

  1. On the Source Endpoint Type menu, enter the option for the Sync Source type.

  2. Choose a pre-existing Sync Source, or create a new sync source.

  3. Enter a name for the Source Endpoint and a name for the Sync Source.

  4. Enter the base distinguished name (DN) for the directory server used for Lightweight Directory Access Protocol (LDAP) searches, such as dc=example,dc=com, and press Enter to return to the menu. If entering more than one base DN, make sure they do not overlap.

  5. On the Server Security menu, select the type of communication that PingDataSync will use with endpoint servers.

  6. Enter the host and port of the first Source Endpoint server. The Sync Source can specify a single server or multiple servers in a replicated topology. PingDataSync contacts this first server if it is available, then contacts the next highest priority server if the first server is unavailable. The server tests the connection.

  7. On the Sync User Account menu, enter the DN of the sync user account and password, or press Enter to accept the default, cn=Sync User,cn=Root DNs,cn=config. This account allows PingDataSync to access the source endpoint server.

Configure the destination endpoint server

Steps

  1. On the Destination Endpoint Type menu, select the type of datastore on the endpoint server. In this example, select the option for Custom.

  2. Enter a name for the Destination Endpoint and a name for the Sync Destination.

  3. On the Notifications Setup menu, select the language (Java or Groovy) used to write the server extension.

  4. Enter the fully qualified name of the Server SDK extension that implements the abstract class. A Java, extension should reside in the /lib/extensions directory. A Groovy script should reside in the /lib/groovy-scripted-extensions directory.

  5. Configure any user-defined arguments needed by the server extension. Typically, these are connection arguments, which are defined by the extension itself. The values are then entered here and stored in the server configuration.

  6. Configure the maximum number of before and after values for all changed attributes. Notification mode requires this. Set the cap to something well above the maximum number of values that any synchronized attribute will have. If this cap is exceeded, PingDataSync issues an alert. For this example, we accept the default value of 200.

    Enter a value for the max changelog before/after values,
    or -1 for no limit [200]:
  7. Configure any key attributes in the change log that must be included in every notification. These attributes can be used to find the destination entry corresponding to the source entry, and are present regardless of whether the attributes changed. Later, any attributes used in a Sync Class include-filter must also be configured as key attributes in the Sync Class.

  8. In both standard and notification modes, the Sync Pipe processes the changes concurrently with multiple threads. If changes must be applied strictly in order, the number of Sync Pipe worker threads will be reduced to 1. This will limit the maximum throughput of the Sync Pipe.

Next steps

The rest of the configuration steps follow the same process as a standard synchronization mode Sync Pipe. For more information see Sync user account.