Case-insensitive uniqueness of LDAP attribute names
Just in case anyone else makes the same silly mistake as I did:
IdB 5.1 and MIM Sync. Adapter was populated, MA created fine, but then got a stopped-extension-dll-exception on the Full Import (full event message below).
The problem was I had done some rename and other transformations which ended up with some fileds with the same name but different casing - FIELDNAME and fieldName. Idb accepted it, and interestingly MIM also accepted it when creating the MA. It was only on running the Import I got an error.
Log Name: ApplicationSource: FIMSynchronizationService Date: 8/19/2016 3:18:58 AM Event ID: 6801 Task Category: Server Level: Error Keywords: Classic User: N/A Computer: <name> Description: The extensible extension returned an unsupported error. The stack trace is: "System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at Unify.Product.IdentityBroker.SearchResultEntry.get_Attributes() at Unify.Product.IdentityBroker.ImportProxy.EntryToAdd(SearchResultEntry searchEntry) at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext() at Unify.Product.IdentityBroker.ExtensionMethods.Take[TSource](IEnumerator`1 source, Int32 count, IList`1& items) at Unify.Product.IdentityBroker.ExtensionMethods.<Page>d__3`1.MoveNext() at Unify.Product.IdentityBroker.ImportProxy.Import(GetImportEntriesRunStep importRunStep) at Unify.Product.IdentityBroker.UnifyLdapConnector.GetImportEntries(GetImportEntriesRunStep importRunStep) Forefront Identity Manager 4.3.2266.0" Event Xml: <System> <Provider Name="FIMSynchronizationService" /> <EventID Qualifiers="49152">6801</EventID> <Level>2</Level> <Task>3</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2016-08-19T03:18:58.000000000Z" /> <EventRecordID>8430</EventRecordID> <Channel>Application</Channel> <Computer>c21-mim.chris21demo.unifysolutions.local</Computer> <Security /> </System> <EventData> <Data>System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at Unify.Product.IdentityBroker.SearchResultEntry.get_Attributes() at Unify.Product.IdentityBroker.ImportProxy.EntryToAdd(SearchResultEntry searchEntry) at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext() at Unify.Product.IdentityBroker.ExtensionMethods.Take[TSource](IEnumerator`1 source, Int32 count, IList`1& items) at Unify.Product.IdentityBroker.ExtensionMethods.<Page>d__3`1.MoveNext() at Unify.Product.IdentityBroker.ImportProxy.Import(GetImportEntriesRunStep importRunStep) at Unify.Product.IdentityBroker.UnifyLdapConnector.GetImportEntries(GetImportEntriesRunStep importRunStep) Forefront Identity Manager 4.3.2266.0</Data> </EventData> </Event>
Answer
Thanks for posting this Carol. The LDAP specification does indicate that attribute names are case-insensitive, and as such it would be helpful if Identity Broker enforced this on adapter schemas. I've created a backlog item to address this.
Customer support service by UserEcho
Available in v5.2.1.