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.

Null key on Adapter import with changed key.
The below exception message is encountered on export after the key has changed valuetype:
Adapter request to update entity to adapter space failed. Adapter request to update entity e118589e-def1-4f63-9ae6-0b9285e016e8 to adapter space 777fb0b6-f864-46e3-8f03-a1dbf8dd1427 failed with reason The entity key of the entity with id e118589e-def1-4f63-9ae6-0b9285e016e8 contains a null value. For reference this key appears as the following '<null>'. Ensure that the attribute corresponding to this key value has been configured correctly in the respective identity management product... Duration: 00:00:00.0312500 Error details: Unify.Framework.UnifyEngineException: The entity key of the entity with id e118589e-def1-4f63-9ae6-0b9285e016e8 contains a null value. For reference this key appears as the following '<null>'. Ensure that the attribute corresponding to this key value has been configured correctly in the respective identity management product.. at Unify.Product.IdentityBroker.Adapter.<>c__DisplayClassb1.<CheckAnchorChangeOnSave>b__a9(KeyValuePair`2 keyValue) at Unify.Framework.Visitor.<>c__DisplayClass1`1.<Visit>b__0(T item, Int32 index) at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor) at Unify.Product.IdentityBroker.Adapter.CheckAnchorChangeOnSave(IEntitySchema connectorSchema, IEnumerable`1 entitiesToSave, IEntityPartitionUpdatableContext connectorContext, IEnumerable`1 entityIds) at Unify.Product.IdentityBroker.Adapter.UpdateEntities(IEnumerable`1 entities, Boolean reflect) at Unify.Product.IdentityBroker.Adapter.UpdateEntity(IAdapterEntity entity, Boolean reflect) at Unify.Product.IdentityBroker.Adapter.UpdateEntity(IAdapterEntity entity) at Unify.Product.IdentityBroker.AdapterNotifierDecoratorBase`1.UpdateEntity(IAdapterEntity entityToSave) at Unify.Product.IdentityBroker.LDIFAdapterBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) at Unify.Product.IdentityBroker.LDIFAdapterServiceHostDecoratorBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) at SyncInvokeExportChanges(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

CSV Connector fails export
Exports to the CSV Connector are failing with the following:
Save entities [Count:1] to connector CSV Connector 2 failed with reason The process cannot access the file 'C:\Shared\Identity Broker 4\CSV Test\Talent2 Person Connector5.csv' because it is being used by another process.. Duration: 00:00:00 Error details: System.IO.IOException: The process cannot access the file 'C:\Shared\Identity Broker 4\CSV Test\Talent2 Person Connector5.csv' because it is being used by another process. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) at System.IO.StreamWriter.CreateFile(String path, Boolean append) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize) at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding) at System.IO.File.AppendAllLines(String path, IEnumerable`1 contents) at Unify.Product.IdentityBroker.CsvConnector.AddEntities(IEnumerable`1 entities) at Unify.Product.IdentityBroker.ConnectorToWritingConnectorBridge.AddEntities(IEnumerable`1 entities) at Unify.Product.IdentityBroker.EventNotifierWritingConnectorDecorator.AddEntities(IEnumerable`1 entities) at Unify.Product.IdentityBroker.Adapter.AddEntities(IEnumerable`1 entities, Boolean reflect) at Unify.Product.IdentityBroker.Adapter.AddEntity(IAdapterEntity entity) at Unify.Product.IdentityBroker.AdapterNotifierDecoratorBase`1.AddEntity(IAdapterEntity entity) at Unify.Product.IdentityBroker.LDIFAdapterBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) at Unify.Product.IdentityBroker.LDIFAdapterServiceHostDecoratorBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) at SyncInvokeExportChanges(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
There were a series of improvements made to the CSV connector that will need to be re-evaluated and completely regression tested. These changes were made in attempts to remove the likelihood of locks on a file being breached on the same thread by reducing the number of reads/writes to the file.
These included:
- Preventing the collection of IConnectorEntities being completely evaluated before being written back.
- Reducing the reads on the same file to 1 instead of 3 on Add entities.

WCF Communicator UI in Framework is incomplete
The WCF communicator in UI is improperly formatted and does not use correct labels. It also seems to be using the wrong control for the impersonation level. This is affecting the SharePoint and EMinerva connectors.
WCFail.png

Merge related transformations
The following transformation groupings could be merged into single transformations with additional filters/cleared:
- Membership List, Membership List Composite Key, Membership List Composite Key with String Priority, Membership List Date Relational
- Date Relational (Standard, Next Placement, Recent, Relevant, String Priority), Relational (standard/string priority), Composite Relational, Composite Relational with String Priority, Time relational and prioritized, time relational.
Where additional filters that could be merged are seen as:
- The implementations of IncludeItem for relational transformations,
and where standard keyed transformations could be represented as composite key transformations with a single key.
This would substantially cut down on the number of transformations users are expected to understand or wade through before getting to a useful transformation.
Additionally, update the descriptions of transformations on the documentation / factories.

Identity Broker and Password Reset
The "enable password management" checkbox is disabled and unselected in the attached screenshot. Does this mean that password sync is not supported with a standard IdB implementation? @VicEd there will be a need to establish a connector with an external directory purely for password sync (no normal attribute flows ... just a connector for each object), and in this special case the "placeholder" connector would be perfect at providing the necessary anchor (cs object) to implement a change/set password extension for this directory.
IdB.FIMMA.ConfigureExtensions.png

Unable to Upgrade IdB v4.1.1 to v4.1.3
Hi
We are unable to upgrade from v4.1.1 to v4.1.3 of Identity Broker Service
Our server was on v4.1.1 RTM
1) First we had tried a "attempt upgrade" to v4.1.3. It failed with SQL error (attached screenshot)
2) Then we thought probably we need to go v4.1.2 first before.. So we downloaded "UNIFY Identity Broker Service v4.1.2 RC1 x64". Upgraded to that. Worked. Then tried v4.1.3 upgrade and failed again
Please let us know how to fix this asap
We do have a backup of v4.1.1 DB with us.
Regards
IdentityBroker Upgrade.sql
unifyidb.sql
Upgrade Error.JPG

Identity Broker for NIM requires a permanent, unique key be specified for associations
I have a question about Identity Broker that relates to the SA Water Project I am currently working on. This is probably a question which I will need to talk with someone about, but thought I should follow the process and put it in Jira first.
Patrick, I have assigned this to you on the basis of advice from Shane, as you are the Prduct Group Operations Leaad, as per the Jira page on Product Group Support (https://unifysolutions.jira.com/wiki/display/PRDGRP/Support)...
I have a problem with the the interaction between Identity Broker and NIM, I am hoping that this is a lack of understanding on my part.
What I need to be able to do is trigger the equivalent of a FIM full import. The mechanism for doing this within NIM is called a "migrate from connected system". This fails within NIM with the error message: "Not enough information to migrate instance xxx"
To achieve the same result, I think one of the following two options may work:
1. If I was able to specify which attribute in the Adapter is used as the Unique Key provided to NIM (if I could specify the detnumber from CHRIS21 as the key that would be great); this is currently a DN which changes when you "Clear all connectors". This causes a problem in NIM because it makes every record seem like an entirely new "person" until it attempts to match the record; then the matched recoird thinks it has a different matching record from CHRIS21 and thows an erro in NIM
2. Or, is it possible specify that all records in the adapter space are "new" whilst keeping the previous DN.I think this would be similar to clearing all associated changes records in the entity repository without generating a new DN for the record in the adpater space...

MultiValue Union transformation not working
A multivalue union configured with a date field fails with:
Adapter import all entities for adapter failed. Adapter import all entities for adapter 02dcad6e-a5d8-4b34-8650-1bb5e917ec2a failed with reason Invalid date time - the value passed was Unify.Framework.IValue[]. Duration: 00:00:01.3974610 Error details: Unify.Product.IdentityBroker.EntitySchemaValidationException: Invalid date time - the value passed was Unify.Framework.IValue[] ---> System.Exception: Unify.Framework.IValue[] could not be parsed into a valid DateTime format. --- End of inner exception stack trace --- at Unify.Product.IdentityBroker.EntityDateTimeTypeSchemaValidator`1.CreateValue(Object dataValue) at Unify.Product.IdentityBroker.MultiValueUnionTransformation.<Transform>d__0.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Product.IdentityBroker.Adapter.ReflectPage(IAdapterEntityPartitionUpdatableContext adapterContext, IEnumerable`1 entities, HashSet`1 seenEntities, ParallelGate gate) at Unify.Product.IdentityBroker.Adapter.<>c__DisplayClass11a.<GetTransformedEntities>b__10d(IEnumerable`1 page) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__17`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__17`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.Collections.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.Collections.EnumerableExtensions.<ActionOnLast>d__17`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at System.Linq.Enumerable.<ConcatIterator>d__71`1.MoveNext() at Unify.Framework.IO.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries) at Unify.Product.IdentityBroker.LDIFAdapterBase.<>c__DisplayClass14`1.<CreateLDIFComponentStream>b__13(Stream stream) at Unify.Framework.IO.LazyEvaluationStream.Evaluate(Object obj)
We believe the validator being passed through by the factory is incorrect.

Improve exception for schema mismatch
The following is the exception thrown when the schema of an adapter does not match the generated XMA schema from FIM.
The given key was not present in the dictionary. at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveAdapterBase`1.<>c__DisplayClassf.<ConvertValues>b__b(<>f__AnonymousType0`2 item) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.Linq.Buffer`1..ctor(IEnumerable`1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveChangeAdapter.GetConvertedValuesFromSchema(String objectClass, IEnumerable`1 values) at Unify.Product.IdentityBroker.LDIFToAdapterEntitySaveChangeAdapter.<Transform>d__3.MoveNext() at Unify.Product.IdentityBroker.LDIFAdapterBase.ExportChanges(ExportedLDIFForAdapter exportedLdifForAdapter) at SyncInvokeExportChanges(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) at Unify.Product.IdentityBroker.IdentityBrokerManagementAgentProxy.ExportEntry(ModificationType modificationType, String[] changedAttributes, CSEntry csentry) Forefront Identity Manager 4.0.3606.2"

Container Foreign Key conflict on delete connector
On deleting a connector that has been used for FIM Exports and CSV full-imports, the following exception was thrown:
System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Container_Container". The conflict occurred in database "Unify.IdentityBroker", table "dbo.Partition", column 'PartitionId'. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.Data.SqlClient.SqlException: The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Container_Container". The conflict occurred in database "Unify.IdentityBroker", table "dbo.Partition", column 'PartitionId'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System...).
Customer support service by UserEcho