Identity Broker Forum
Welcome to the community forum for Identity Broker.
Browse the knowledge base, ask questions directly to the product group, or leverage the community to get answers. Leave ideas for new features and vote for the features or bug fixes you want most.

Unify.Service.Connect.exe using large amounts of RAM and unresponsive
The Unify Service.Connect process is currently using 786084KB RAM and is unresponsive. It's not writing to Logs and restarting the service has not killed the process.
PS C:\Unify> Get-Process -Name Unify.Service.Connect
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
209907 5995 2926564 786084 10,599.94 23692 0 Unify.Service.Connect

I have not seen this issue since the last update. Not sure why that is. No significant changes to the environment have occurred. Probably best to close it & Ill re-open if it arises again .

Aurion Position import fails because key has been duplicated
Created a connector for Aurion Positions to match the one if Idb3 & getting a duplicate key error. I can't see any duplicates in the data when I trace the traffic using Wireshark.
20170522,22:44:43,UNIFY Identity Broker,Connector,Information,"Request to import all entities from connector. Request to import all entities from connector Aurion Position.",Normal 20170522,22:44:43,UNIFY Identity Broker,Connector,Information,"Import all entities from connector completed. Import all entities from connector Aurion Position return 671 entities. Duration: 00:00:00",Normal 20170522,22:44:43,UNIFY Identity Broker,Connector Processor,Information,"Connector Processing started. Connector Processing started for connector Aurion Position (page 1)",Normal 20170522,22:44:44,UNIFY Identity Broker,Connector Processor,Information,"Connector processing failed. Connector Processing page 1 for connector Aurion Position failed with reason The key L32190N has been duplicated.. Duration: 00:00:00.2500002. Error details: System.ArgumentException: The key L32190N has been duplicated. at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue`1 arg1) at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashError[TKey,TValue,TOriginal](IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, Func`2 retrieveEntities, Guid connectorId, IEnumerable`1 originalEntities, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IKnownEntityContextBase`3 context, Guid connectorId, IEnumerable`1 originalEntities, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass11_0.<performchangedetection>b__0(IEnumerable`1 page) at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()",Normal 20170522,22:44:44,UNIFY Identity Broker,Change detection engine,Error,"Change detection engine import all items failed. Change detection engine import all items for connector Aurion Position failed with reason An error occurred while evaluating a task on a worker thread. See the inner exception details for information.. Duration: 00:00:10.7189045 Error details: Unify.Framework.EvaluatorVisitorException: An error occurred while evaluating a task on a worker thread. See the inner exception details for information. ---> System.ArgumentException: The key L32190N has been duplicated. at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue`1 arg1) at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashError[TKey,TValue,TOriginal](IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, Func`2 retrieveEntities, Guid connectorId, IEnumerable`1 originalEntities, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IKnownEntityContextBase`3 context, Guid connectorId, IEnumerable`1 originalEntities, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator, IHashSet`1 seenKeys) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass11_0.<performchangedetection>b__0(IEnumerable`1 page) at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate() --- End of inner exception stack trace --- at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.CheckForException() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.WaitForCompletedThreads() at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit() at Unify.Framework.Visitor.VisitEvaluateOnThreadPool[T](IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads) at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities) at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.ImportAllChangeProcess() at Unify.Product.IdentityBroker.ChangeDetectionImportAllJob.RunBase() at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run() at Unify.Product.IdentityBroker.ConnectorJobExecutor.<>c__DisplayClass30_0.<run>b__0() at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal</run></performchangedetection></performchangedetection>

The data retrieved by SOAPUI contains 2 positions with the same code as per the error in 5.1.
Has the handling of this scenario in IdB changed? I'm interested to know why 3.1 does not throw an error.

DataTables warning: table id=Logs - Invalid JSON response
Clicking on the last page of Logs often throws the following error:
---------------------------
Message from webpage
---------------------------
DataTables warning: table id=Logs - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1
---------------------------
OK
---------------------------
The user cannot access that page.

Hi Matthew, I believe I was able to track down and fix this issue. If you're able to test please take a look at:

Aurion Attribute Mapping broken & possibly not required anymore
Using Aurion connectors, I have 4 types:
- Schedule
- Security User
- Person
- Generic
If I use Security User as an example, immediately after creating the connector I get the error "Aurion connectors require Query Mappings to be configured for imports to successfully complete. Please reconfigure this connector to update the Query Mappings."
1) If I use the "default Security User schema", an incorrect schema is created and I need to guess the correct attribute names.
If I use the "query fields" option, the correct names are created & have the option to do mapping in the connector which is very time consuming, or I can have the adapter do it automatically.
2) Is it necessary/advisable to do this mapping in the connector?

The default schema allows the fields to be exported to, they are the names that are required for the API to work. Due to a mismatch in Aurion (and the ability to rename fields in the query tool), there needs to be a mechanism to map between the differently named fields.
The default schema should be used for the connectors that have one. Then use the mapping tool to map between these field names and those that are returned by the query (or the query schema provider).

Change Core Log location
Core Logs are being written to C:\Program Files\UNIFY Solutions\Identity Broker\Services\Logs There doesn't seem to be a place to do this in the UI.

Hi Matt,
This location currently can't be changed. If you need to log to a different directory, you can create another CSV log writer configured to log to the desired directory. Alternatively, you could try replacing the C:\Program Files\UNIFY Solutions\Identity Broker\Services\Logs directory with a symbolic link to the desired directory.

Schema Provider errors with "Value cannot be null. Parameter name: key"
On some of the other connectors when I attempt to request schema, I get the error "Value cannot be null. Parameter name: key".

NEWS-LTD-101: Idb for Workday: Request to change filtering date from hire date to current date
News has requested that UNIFY modify the code for IdB for Workday such that filtering on a user;s Top-Level Org uses the current date rather that the target user's Hire Date. Currently News are seeing users filtered that should not be filtered and the cause appears to be that when the hire date is used, the IdB returns the SupervisoryOrg level instead of the Top Org level for the user i.e. the returned result is:
SupervisioryLevelOrganisation = SupervisioryOrg
TopLevelOrganisation = SupervisioryOrg
Which results in the user being filtered
News-Ltd now have given approval for UNIFY to make to the requested code change and agree that (in the absence of advice from Theory of Mind), that they take full responsibility for the performance of the code and have agreed that the code change will be staged through a full regression test cycle in their UAT environment prior to migrating the code to Production.
Thanks Jeff.

Install IdB MIM Adapter DLL to appropriate MIM directory
The MIM adapter currently installs to a Unify directory in Program Files, after which it needs to be moved manually into the appropriate MIM Directory.
The installer could install into the appropriate directory, which would result in better end user experience, both in the initial install and in repairs.
The FIM Sync base directory can be retrieved from the registry at:
SYSTEM\CurrentControlSet\Services\FIMSynchronizationService\Parameters\Path
as documented here.
After this \extensions needs to be added to the path value to find the location.

Will be included in the next adapter release.

Unable to retrieve schema
MIMs IdB MA is unable to retrieve schema from IdB during implmentation. Error returned is:
-------------------------------------------
Synchronization Service Manager
Unable to retrieve schema. Error: Exception from HRESULT: 0x80231343
-------------------------------------------
Event Log contains the following:
-------------------------------------------
The extensible extension returned an unsupported error.
The stack trace is:
Unify.Product.IdentityBroker.LdapOperationException: Object reference not set to an instance of an object.
at Unify.Product.IdentityBroker.LdapConnection.SendRequest(ILdapRequest request)
at Unify.Product.IdentityBroker.LdapConnection.GetSchema(String schemaDn)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.Aggregate[TSource](IEnumerable`1 source, Func`3 func)
at Unify.Product.IdentityBroker.LdapConnectionProxy.get_Schema()
at Unify.Product.IdentityBroker.UnifyLdapConnectorTypeProxy.GetSchema(KeyedCollection`2 configParameters)
Forefront Identity Manager 4.4.1459.0
-------------------------------------------

Thanks Matt,
It looks like you have an entry in the [Container] table left over from an adapter with a container name of users. These should be removed automatically when you delete the adapter, or if you delete it directly from the xml config, at service startup. I'm not sure how it's managed to stay in there for you if you don't have any such adapter. You can manually delete the entry from the [Container] table where the [DistinguishedName] column has the value OU=users,DC=IdentityBroker to resolve this issue, and I'll re-raise this as bug in our backlog.
You should be able remove the patches supplied on this issue as well.

Missing object class in IdB 5.1
Configuring IdB5.1 for the first time with SharePoint connector and MIM. MIM does not see the object class that the Adapter is presenting, but it does see the container.
IdB for MIM 5.1 RC2 is the version I have installed.

I forgot that the installer doesn't put the DLL into the right directory. 🤦
The 5.0 version was in an responding to requests.
I'm getting a different error now, but will open a new issue for that one.
Customer support service by UserEcho