Le 25 juil. 2012 04:35, "Robin Garner" <[email protected]> a écrit : > > I have an LSC task synchronizing our legacy Sun Directory Server with > Redhat DS (aka 389). > > Apparently the 389 server returns object class values in a different > capitalization to the Sun directory for some entries - I suspect it > copies whatever was used when the entry was created, which could have > been one of several sources. For example, a typical entry in the source has > > organizationalPerson, icscalendaruser, inetadmin, > inetlocalmailrecipient, inetmailuser, inetsubscriber, > iplanet-am-managed-person, iplanet-am-user-service, iplanetpreferences, > ipuser, person, eduPerson, SunUCPreferences, inetUser, > userpresenceprofile, inetOrgPerson, top > > and in the destination > > eduperson, person, inetorgperson, krbprincipalaux, krbTicketPolicyAux, > organizationalperson, inetuser, top > > I'm seeing errors like this > > > Jul 25 11:32:17 - ERROR - Error while modifying entry uid=22026033,ou=Student,o=scu.edu.au,dc=scu,dc=edu,dc=au in directory :javax.naming.directory.AttributeInUseException: [LDAP: error code 20 - Attribute Or Value Exists]; remaining name 'uid=22026033,ou=Student' > > Jul 25 11:32:17 - ERROR - Error while synchronizing ID uid=22026033,ou=Student,o=scu.edu.au,dc=scu,dc=edu,dc=au: java.lang.Exception: Technical problem while applying modifications to the destination > > Jul 25 11:32:17 - DEBUG - java.lang.Exception: Technical problem while applying modifications to the destination > > java.lang.Exception: Technical problem while applying modifications to the destination > > at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:760) [classes/:na] > > at org.lsc.SynchronizeTask.run(AbstractSynchronize.java:658) [classes/:na] > > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_06-ea] > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_06-ea] > > at java.lang.Thread.run(Thread.java:722) [na:1.7.0_06-ea] > > dn: uid=22026033,ou=Student,o=scu.edu.au,dc=scu,dc=edu,dc=au > > changetype: modify > > add: objectClass > > objectClass: organizationalPerson > > objectClass: eduPerson > > objectClass: inetOrgPerson > > objectClass: inetUser > > In the config, the syncOptions for objectClass say > > > <dataset> > > <name>objectClass</name> > > <policy>MERGE</policy> > > <defaultValues></defaultValues> > > <forceValues> > > <string>"top"</string> > > <string>"person"</string> > > <string>"eduPerson"</string> > > <string>"inetOrgPerson"</string> > > <string>"inetUser"</string> > > <string>"organizationalPerson"</string> > > </forceValues> > > <createValues> > > </createValues> > > <delimiter>,</delimiter> > > </dataset> > > Is there a way of making the comparison case-blind ? Looking through > the directory, it looks like some entries are all lower case, while some > are camel-cased, so there is no one correct capitalization to match the > 'force' values to. > > cheers, > Rob
I do not think it is possible, but why do you need to merge objectclass? In general we just force values in creation. A workaround can also be to use a javascript code to merge values. Clement
_______________________________________________________________ Ldap Synchronization Connector (LSC) - http://lsc-project.org lsc-users mailing list [email protected] http://lists.lsc-project.org/listinfo/lsc-users

