When synchronizing from a database to a directory or RDBMS server, the following are recommended:
Identify Database Entry Types
Identify the database entry types that will be synchronized, and:
- Set the
database-entry-typeproperty on the JDBC Sync Source (this is required), and make sure the entry types are what the triggers are inserting into the change tracking mechanism.
- Create a Sync Class per entry type, and set different mappings and rules for each one.
For each Sync Class, do the following:
- Make sure the
include-filterproperty is set to match the entry type.
- Create a specific attribute mapping for every database column to be synchronized to an LDAP attribute and set it on the Sync Class. If this is done, the script will not have to know about the schema on the directory side.
- Create a DN map that recognizes the DNs generated by the script and maps them to the correct location at the destination.
- Remove the default value of "-all-" from the
auto-mapped-source-attributeproperty on the Sync Class, and replace it with the value
objectClass. The object class for the fetched source entry is determined by the scripted layer. Values from the database should not be automatically mapped to an attribute with the same name, except the
objectclassattribute, which should map directly for CREATE operations. If this is not done, an error is generated.
- Change the destination-correlation-attributes property to contain the attributes that uniquely represent the database entries on the directory server destination.
Avoid Bidirectional Loopback
ignore-changes-by-[user|dn] property on both
Sync Sources when configuring for bidirectional synchronization, to
make sure that changes are not looped back by PingDataSync.
See Use the create-sync-pipe tool to configure synchronization for details about creating the Sync Pipe.