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.
Http Communicator advanced settings moved over in IE9
See screenshot. This occurred when the Advanced Settings view was enabled on the initial update step.
Advanced Settings Indented IE 9.png
Items with null key values fail to save to connector context
When entities with null keys are exported (as in the case initially for SharePoint Org Profile), they fail to save to the connector context. This leaves Identity Broker in a state where the item exists in the connected system but not the connector context. Error message as follows:
Value cannot be null.
Parameter name: item
> Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.EntityLinqQueryExecutorInformation<Unify.Framework.Collections.GroupedNameValueCollectionKey>.AddValue(System.Guid searchGuid, Unify.Framework.Collections.GroupedNameValueCollectionKey keyValue, Unify.Framework.IValue item, int columnSequence, int valueSequence, Unify.Product.IdentityBroker.Repository.IEntityCollectionKeyUtility<Unify.Framework.Collections.GroupedNameValueCollectionKey> collectionKeyUtility) Line 151 C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.EntityExpressionQueryVisitor<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey>.CreateMultiValueRangeExpression.AnonymousMethod__16(Unify.Framework.MultiKeyValue itemValue, int itemValueIndex) Line 575 + 0x155 bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<Unify.Framework.MultiKeyValue>(System.Collections.Generic.IEnumerable<Unify.Framework.MultiKeyValue> visitCollection, System.Action<Unify.Framework.MultiKeyValue,int> visitor) Line 48 C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.EntityExpressionQueryVisitor<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey>.CreateMultiValueRangeExpression.AnonymousMethod__15(Unify.Framework.Collections.GroupedNameValueCollectionKey key, int keyIndex) Line 571 + 0x9f bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<Unify.Framework.Collections.GroupedNameValueCollectionKey>(System.Collections.Generic.IEnumerable<Unify.Framework.Collections.GroupedNameValueCollectionKey> visitCollection, System.Action<Unify.Framework.Collections.GroupedNameValueCollectionKey,int> visitor) Line 48 C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.EntityExpressionQueryVisitor<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey>.CreateMultiValueRangeExpression(Unify.Product.IdentityBroker.IMultiKey<Unify.Framework.Collections.GroupedNameValueCollectionKey> multiKey, System.Collections.Generic.IEnumerable<Unify.Framework.MultiKeyValue> sourceValueList, System.Linq.IQueryable<Unify.Product.IdentityBroker.Repository.Entity> sourceQueryable) Line 570 + 0xff bytes C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.VisitMethodWhereWithMultiValueEnumerableContains<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey>.Transform(System.Linq.Expressions.MethodCallExpression expression) Line 76 + 0x3a bytes C#
Unify.IdentityBroker.Entity.Repository.Sql.dll!Unify.Product.IdentityBroker.Repository.EntityExpressionQueryVisitor<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.IEntity,Unify.Framework.Collections.GroupedNameValueCollectionKey>.VisitMethodCall(System.Linq.Expressions.MethodCallExpression m) Line 367 + 0x50 bytes C#
Unify.Framework.Linq.dll!Unify.Framework.ExpressionVisitorBase<System.Linq.Expressions.Expression,System.Linq.Expressions.MemberBinding,System.Linq.Expressions.ElementInit,System.Collections.ObjectModel.ReadOnlyCollection<System.Linq.Expressions.Expression>,System.Linq.Expressions.MemberAssignment,System.Linq.Expressions.MemberMemberBinding,System.Linq.Expressions.MemberListBinding,System.Collections.Generic.IEnumerable<System.Linq.Expressions.MemberBinding>,System.Collections.Generic.IEnumerable<System.Linq.Expressions.ElementInit>,System.Linq.Expressions.ParameterExpression,System.Linq.Expressions.NewExpression>.Visit(System.Linq.Expressions.Expression exp) Line 177 + 0x41 bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqContextConversionExpressionVisitorBase<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,System.Linq.IQueryable<Unify.Product.IdentityBroker.IEntity>,Unify.Product.IdentityBroker.Repository.IEntityLinqQueryExecutorInformation<Unify.Framework.Collections.GroupedNameValueCollectionKey>,Unify.Product.IdentityBroker.Repository.EntityDataContext>.ConvertExpression(System.Linq.Expressions.Expression partitionExpression) Line 96 + 0x22 bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqQueryConversionProvider<Unify.Product.IdentityBroker.Repository.Entity,Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.Repository.IEntityLinqQueryExecutorInformation<Unify.Framework.Collections.GroupedNameValueCollectionKey>,Unify.Product.IdentityBroker.Repository.EntityDataContext,System.Data.SqlClient.SqlConnection>.GetOrderedQuery(System.Linq.Expressions.Expression businessExpression, System.Linq.IQueryable<Unify.Product.IdentityBroker.Repository.Entity> sourceQueryable, Unify.Product.IdentityBroker.Repository.EntityDataContext sourceContext) Line 44 + 0x7f bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqWhereQuery<Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.Repository.IEntityLinqQueryExecutorInformation<Unify.Framework.Collections.GroupedNameValueCollectionKey>,Unify.Product.IdentityBroker.Repository.EntityDataContext,Unify.Product.IdentityBroker.Repository.Entity,System.Data.SqlClient.SqlConnection>.EvaluateQuery(Unify.Product.IdentityBroker.Repository.EntityDataContext context) Line 172 + 0x96 bytes C#
Unify.Framework.Data.dll!Unify.Framework.Data.LinqWhereQuery<Unify.Product.IdentityBroker.IEntity,Unify.Product.IdentityBroker.Repository.IEntityLinqQueryExecutorInformation<Unify.Framework.Collections.GroupedNameValueCollectionKey>,Unify.Product.IdentityBroker.Repository.EntityDataContext,Unify.Product.IdentityBroker.Repository.Entity,System.Data.SqlClient.SqlConnection>.GetEnumerator() Line 92 + 0x10 bytes C#
System.Core.dll!System.Linq.Enumerable.ToDictionary<Unify.Product.IdentityBroker.IEntity,Unify.Framework.MultiKeyValue,System.Guid>(System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IEntity> source, System.Func<Unify.Product.IdentityBroker.IEntity,Unify.Framework.MultiKeyValue> keySelector, System.Func<Unify.Product.IdentityBroker.IEntity,System.Guid> elementSelector, System.Collections.Generic.IEqualityComparer<Unify.Framework.MultiKeyValue> comparer) + 0xc8 bytes
System.Core.dll!System.Linq.Enumerable.ToDictionary<Unify.Product.IdentityBroker.IEntity,Unify.Framework.MultiKeyValue,System.Guid>(System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IEntity> source, System.Func<Unify.Product.IdentityBroker.IEntity,Unify.Framework.MultiKeyValue> keySelector, System.Func<Unify.Product.IdentityBroker.IEntity,System.Guid> elementSelector) + 0x5a bytes
Unify.IdentityBroker.Entity.Repository.dll!Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntities(System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IConnectorEntity> connectorEntities, Unify.Product.IdentityBroker.IMultiKey<Unify.Framework.Collections.GroupedNameValueCollectionKey> schemaKey, System.Linq.IQueryable<Unify.Product.IdentityBroker.IEntity> sourceEntities, System.Guid connectorId, System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IEntity> wellKnownEntities) Line 55 + 0x28 bytes C#
Unify.IdentityBroker.ChangeDetection.dll!Unify.Product.IdentityBroker.EntityChangeDetector.ProcessConnectorChangedEntities(System.Guid connectorId, System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IConnectorEntity> connectorEntities, System.Collections.Generic.IEnumerable<Unify.Product.IdentityBroker.IEntity> wellKnownItems) Line 145 + 0x89 bytes C#
Unify.IdentityBroker.Adapter.Engine.dll!Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.DetectChanges(System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport> connectorEntities) Line 236 + 0xc0 bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>>.AnonymousMethod__0(System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport> item, int index) Line 23 + 0x43 bytes C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>> visitCollection, System.Action<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>,int> visitor) Line 48 C#
Unify.Framework.DesignPatterns.dll!Unify.Framework.Visitor.Visit<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>>(System.Collections.Generic.IEnumerable<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>> visitCollection, System.Action<System.Collections.Generic.KeyValuePair<System.Guid,Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.CollatorReport>> visitor) Line 24 C#
Unify.IdentityBroker.Adapter.Engine.dll!Unify.Product.IdentityBroker.AdapterEntityChangeDetectorCollator.Run() Line 163 + 0x4e bytes C#
Entity Search fail to change page after grouping a field
in IdB beta1, Entity Search fail to change page after grouping a field
Missing file extension for transformed configuration download
The downloaded transformed configuration files are missing their file extension.
Has the MIME type been set on these files?
Can the labels mentioning XSLT be renamed to configuration documentation? Or something along those lines, as XSLT is a technical term. This is on the connector and adapter pages tooltips, as well as the header for the page once configured.
Thanks.
Images flicker in Chrome
A fix that was added to Event Broker was not ported to IdB.
The fix is to comment out the in Request.cs (CassiniDev), lines 496-501 (case HeaderLastModified), to allow static files to be cached.
This was found as I was comparing the outputs of Internet Explorer and Chrome.
Issues with connector next run information
There are some new issues with the next run information for connectors:
- The time shown only shows the time til the next Import All run
The progress bar seems to only now show the results of Import All, not Import ChangesThe progress bar appears while the operation is running, then clears the progress bar very shortly after it is done from the home page, unsure whether or not this is by design
To observe this, I added an import all schedule that would run every 10 hours, and a import changes schedule every 30 seconds. This was using IE9.
Option to delete child org units when parent is deleted
When an org unit has a child org unit within and a delete attempt is made on the parent, the response is "Cannot delete entity with members (412)" and the delete fails.
A configurable option should be implemented that allows any child orgs to be deleted automatically when its parent is to be deleted.
Bulk operation feedback from connector and adapter main pages
It would be nice to see what operations were run from the Connector and Adapter index pages, eg. "Adapters X, Y and Z deleted". At the moment, the operations simply happen.
Progress Meter/Counters in PerfMon
It would be great to have a progress meter in IdB, so that you can see something is actually happening during an import.
Perfmon Counters would also be great/better. Something along the lines of what's available in the FIM Sync Engine:
Objects Read
Objects Read /sec
Objects Exported
Objects Exported /sec
Objects Synchronized
Objects Synchronized /sec
A new critical alert is spawned each time the page refreshes
A new critical alert is spawned each time the page refreshes.
Please ensure that the fix does not allow further dialogs to be spawned, as to not lose the current position and size.
Customer support service by UserEcho