I'm trying to set up an AD->AD sync job to create mail-enabled contacts in an separate AD Forest (trusted both ways). I need to restrict the query to AD users with whose 'company' value matches 2 of 3 options. I've created and verifiied the LDAP query in ADUC. I created the job without any filters first, to verify perms, etc., and it ran fine. I then added the LDAP filter for the source to only select users from the 2 business units I need, and I get an immediate failure when I preview the job.
In the 'Reports' tab, I get: Could not load data from source provider: One or more errors occurred during processing of command.
This is the 'Directory Synchronization Query' text that I have in the 'advanced options' screen for the job.
- SELECT * FROM 'LDAP://DOMAINCONTROLLERNAMEA' WHERE '(&(&(mailNickname=*)(&(objectCategory=person)(objectClass=user)(|(homeMDB=*)(msExchHomeServerName=*))))(|(&(company=COMPANY ABC)(objectClass=user))(&(company=COMPANY XYZ)(objectClass=user))))'
Here is an error event I found in the app log on my GroupID server.
Error creating recordset: One or more errors occurred during processing of command.
Source: Provider
Stacktrace: at ADODB.CommandClass.Execute(Object& RecordsAffected, Object& Parameters, Int32 Options)
at Imanami.Dtm.Synchronization.ADsDSOReader.getDirectory(String connectionString, String commandString, String user, String password, Int32 pageSize, Int32 timeout, Int32 searchScope, Boolean isCacheResults)
Below is a log entry (repeated each time I tried this) from the 'Imamami GroupID' Event log.
2010-02-24 15:00:23,789 [6160] ERROR Imanami.Dtm.Synchronization.JobEngine [(null)] - An exception was raised while running job.
Imanami.Dtm.DTMFatalException: Could not load data from source provider: One or more errors occurred during processing of command. ---> System.Runtime.InteropServices.COMException (0x80040E14): One or more errors occurred during processing of command.
at ADODB.CommandClass.Execute(Object& RecordsAffected, Object& Parameters, Int32 Options)
at Imanami.Dtm.Synchronization.ADsDSOReader.getDirectory(String connectionString, String commandString, String user, String password, Int32 pageSize, Int32 timeout, Int32 searchScope, Boolean isCacheResults)
at Imanami.Dtm.Synchronization.ADsDSOReader.GetDataSet(String connectionString, String commandString)
--- End of inner exception stack trace ---
at Imanami.Dtm.Synchronization.ADsDSOReader.GetDataSet(String connectionString, String commandString)
at Imanami.Dtm.Synchronization.SourceReaderBase.GetSourceDataSet(String[] sourceFieldNames)
at Imanami.Dtm.Synchronization.JobEngine.LoadSourceDataSet()
at Imanami.Dtm.Synchronization.JobEngine.ConnectAndLoadData(ScriptRunner scriptRunner)
at Imanami.Dtm.Synchronization.JobEngine.CommenceJob(ScriptRunner& scriptRunner)
at Imanami.Dtm.Synchronization.JobEngine.Run()
Logging is in debug mode, from another issue that I was working on, so I've got log files I can send.
What am I doing wrong here? This requirement has never come up before, so I need some help filtering records from the source.
Thanks!