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.

Debug mode logs too many lines
Debug mode introduced for v3.0.6.1 logs each line from Chris21 a repeated number of times to the Identity Broker log, meaning the log grows larger than it needs to when attempting to debug a specific connector.

Permission issues with pluggable views and connector images when using IIS
The following error appears for pluggable views when using IIS. The issue may be to do with the permission set required by the IIS user, although I am logged on as the local and domain Administrator account and using Windows authentication:
System.UnauthorizedAccessException: Access to the path 'C:\Program Files\UNIFY Solutions\Identity Broker\Web\Views\Temp\Connector\ExtendedDisplayConnector\Unify.Connectors.PlaceholderDisplayConnector.cshtml' is denied.
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, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
at System.IO.StreamWriter..ctor(String path, Boolean append)
at Unify.Framework.Web.UnifyRazorViewEngine.CreateView(ControllerContext controllerContext, String path) in c:\Program Files (x86)\Jenkins\jobs\Framework Core (DEV)\workspace\Source\Web\Unify.Framework.Web\Razor\UnifyRazorViewEngine.cs:line 110
at Unify.Framework.Web.UnifyRazorViewEngine.CreatePartialView(ControllerContext controllerContext, String partialPath) in c:\Program Files (x86)\Jenkins\jobs\Framework Core (DEV)\workspace\Source\Web\Unify.Framework.Web\Razor\UnifyRazorViewEngine.cs:line 134
at System.Web.Mvc.VirtualPathProviderViewEngine.FindPartialView(ControllerContext controllerContext, String partialViewName, Boolean useCache)
at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths)
at System.Web.Mvc.PartialViewResult.FindView(ControllerContext context)
at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
at System.Web.Mvc.ControllerActionInvoker.<>c_DisplayClass1c.<InvokeActionResultWithFilters>b_19()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultWithFilters(ControllerContext controllerContext, IList`1 filters, ActionResult actionResult)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
Additionally connector images are not coming through.

Action implications for deprecated FIM features
Microsoft has announced a number of features are to be deprecated in "the next FIM version" as described at http://technet.microsoft.com/en-us/library/jj879229(v=ws.10).aspx. In particular, the following need to be updated:
IDB-312- ECMA2 support- Updating the default run profiles for the xMA such that they do not contain single step run profiles (ie. "full import and full synchronization")

BeginExport should fail on service unavailable
If you run an export with the Identity Broker service disabled, every item will attempt to export and fail. Instead, service availability should cause the export to fail at the BeginExport level, like the AD and SQL MAs.

An import to Identity Broker fails due to a NullReferenceException
The inclusion of a Relational.Composite adapter tranformation causes a FIM-instigated full import (adapter) to fail with the following exception:
Log Name: UNIFY.IdB.PeopleSoft Source: Adapter get all entities for adapter failed. Date: 3/10/2012 11:50:00 AM Event ID: 0 Task Category: None Level: Warning Keywords: Classic User: N/A Computer: D-OCCCP-AS001.dbb.local Description: Error occurred in module: Adapter Adapter get all entities for adapter 5db0f5e1-a032-450a-9415-fa4863f171da failed with reason Object reference not set to an instance of an object.. Duration: 00:00:40.8116688 Error details: System.NullReferenceException: Object reference not set to an instance of an object. at Unify.Framework.ArrayEqualityComparer`1.GetHashCode(T[] obj) at Unify.Framework.MultiKeyValue.GetHashCode() at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj) at System.Linq.Set`1.InternalGetHashCode(TElement value) at System.Linq.Set`1.Find(TElement value, Boolean add) at System.Linq.Set`1.Add(TElement value) at System.Linq.Enumerable.<DistinctIterator>d__7a`1.MoveNext() at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source) at Unify.Repository.EntityExpressionQueryVisitor`3.CreateMultiValueRangeExpression(IMultiKey`1 multiKey, IEnumerable`1 sourceValueList, IQueryable`1 sourceQueryable) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodWhereWithMultiValueEnumerableContains(MethodCallExpression expression) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m) at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp) at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression) at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext) at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context) at Unify.Framework.LinqWhereQuery`5.GetEnumerator() at System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at System.Linq.Enumerable.ToLookup[TSource,TKey](IEnumerable`1 source, Func`2 keySelector) at Unify.Framework.EntityCompositeKeyDistinguishedNameStaticRelationValueAdapterBase.Transform(IEnumerable`1 sourceValue) at Unify.Framework.ChainValueAdapter`3.Transform(TBaseValue baseValue) at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`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.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries) at Unify.Framework.LDIFAdapter.<>c__DisplayClass7`1.<CreateLDIFComponentStream>b__6(Stream stream) at Unify.Framework.LazyEvaluationStream.Evaluate(Object obj) Event Xml: <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event"> <System> <Provider Name="Adapter get all entities for adapter failed." /> <EventID Qualifiers="0">0</EventID> <Level>3</Level> <Task>0</Task> <Keywords>0x80000000000000</Keywords> <TimeCreated SystemTime="2012-10-03T01:50:00.000000000Z" /> <EventRecordID>1364406</EventRecordID> <Channel>UNIFY.IdB.PeopleSoft</Channel> <Computer>D-OCCCP-AS001.dbb.local</Computer> <Security /> </System> <EventData> <Data>Error occurred in module: Adapter Adapter get all entities for adapter 5db0f5e1-a032-450a-9415-fa4863f171da failed with reason Object reference not set to an instance of an object.. Duration: 00:00:40.8116688 Error details: System.NullReferenceException: Object reference not set to an instance of an object. at Unify.Framework.ArrayEqualityComparer`1.GetHashCode(T[] obj) at Unify.Framework.MultiKeyValue.GetHashCode() at System.Collections.Generic.GenericEqualityComparer`1.GetHashCode(T obj) at System.Linq.Set`1.InternalGetHashCode(TElement value) at System.Linq.Set`1.Find(TElement value, Boolean add) at System.Linq.Set`1.Add(TElement value) at System.Linq.Enumerable.<DistinctIterator>d__7a`1.MoveNext() at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source) at Unify.Repository.EntityExpressionQueryVisitor`3.CreateMultiValueRangeExpression(IMultiKey`1 multiKey, IEnumerable`1 sourceValueList, IQueryable`1 sourceQueryable) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodWhereWithMultiValueEnumerableContains(MethodCallExpression expression) at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m) at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp) at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression) at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext) at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context) at Unify.Framework.LinqWhereQuery`5.GetEnumerator() at System.Linq.Lookup`2.Create[TSource](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer) at System.Linq.Enumerable.ToLookup[TSource,TKey](IEnumerable`1 source, Func`2 keySelector) at Unify.Framework.EntityCompositeKeyDistinguishedNameStaticRelationValueAdapterBase.Transform(IEnumerable`1 sourceValue) at Unify.Framework.ChainValueAdapter`3.Transform(TBaseValue baseValue) at System.Linq.Enumerable.<>c__DisplayClass12`3.<CombineSelectors>b__11(TSource x) at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext() at System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext() at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`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.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries) at Unify.Framework.LDIFAdapter.<>c__DisplayClass7`1.<CreateLDIFComponentStream>b__6(Stream stream) at Unify.Framework.LazyEvaluationStream.Evaluate(Object obj)</Data> </EventData> </Event>
The following is the adapter configuration which triggered the problem:
<adapter name="Relational.Composite" RelationshipConnectorId="{2030B82B-BCE1-40DD-A1EE-09C9F0DC66C6}" > <Relationships> <Relationship InputKey="SalAdminPlan" RelationshipKey="SalAdminPlan" /> <Relationship InputKey="Grade" RelationshipKey="Grade" /> </Relationships> <dn target="Grades"> <dnComponent name="Field" key="Grade" attributeType="CN" /> <dnComponent name="Constant" value="Grades" attributeType="OU" /> <dnComponent name="Field" key="SalAdminPlan" attributeType="CN" /> <dnComponent name="Constant" value="Plans" attributeType="OU" /> </dn> </adapter>
The generated full import of the adapter minus the above transformation would have been attached for reference had the subsequent full import attempt not failed with a timeout exceeded exteption (see comments), as I am suspecting null data values may not be being handled in the hash function call.
1000.jobs.evtx
Installed.png
PlatformDetails.txt
Unify.Framework.AdapterEntityTransformation.dll
Unify.Framework.Collections.dll

Group Membership Connector failed with reason Type System.String is not supported.
20130520,22:33:19,Get all entities from connector failed.,Connector,Warning,"Get all entities from connector Learnology Life Group Membership Connector failed with reason Type System.String is not supported. Duration: 00:00:00.1406160
Error details:
System.NotSupportedException: Type System.String is not supported
at Unify.Repository.EntityExpressionQueryVisitor`3.GetDataUtility(Type valueType)
at Unify.Repository.EntityExpressionQueryVisitor`3.CreateEntityValueValueExpression(Expression valueExpression, Expression parameterExpression)
at Unify.Repository.EntityExpressionQueryVisitor`3.VisitBinary(BinaryExpression b)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.VisitLambda(LambdaExpression lambda)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.ExpressionExpressionVisitorBase.VisitUnary(UnaryExpression u)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.ExpressionExpressionVisitorBase.<VisitExpressionList>b__1(Expression originalExpression)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToListTSource(IEnumerable`1 source)
at Unify.Framework.ExpressionExpressionVisitorBase.VisitExpressionList(ReadOnlyCollection`1 original)
at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.VisitMethodCall(MethodCallExpression m)
at Unify.Repository.EntityExpressionQueryVisitor`3.VisitMethodCall(MethodCallExpression m)
at Unify.Framework.ExpressionVisitorBase`11.Visit(Expression exp)
at Unify.Framework.LinqContextConversionExpressionVisitorBase`5.ConvertExpression(Expression partitionExpression)
at Unify.Framework.LinqQueryConversionProvider`5.GetOrderedQuery(Expression businessExpression, IQueryable`1 sourceQueryable, TContext sourceContext)
at Unify.Framework.LinqWhereQuery`5.EvaluateQuery(TContext context)
at Unify.Framework.LinqWhereQuery`5.GetEnumerator()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArrayTSource(IEnumerable`1 source)
at Unify.Connectors.RemoveMembershipsSettings.GetClearedGroupIds(IEntityPartitionUpdatableContext groupEntityRepository, ILifeSiteWCFCommunicator siteWCFCommunicator)
at Unify.Connectors.LifeGroupMembershipConnector.GetConfiguredClearedGroupIds()
at Unify.Connectors.LifeGroupMembershipConnector.<GetAllEntities>d__1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnFirst>d__1c`1.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ActionOnLast>d__16`1.MoveNext()
at Unify.Framework.EnumerableExtensions.<ProduceAutoPages>d__9`1.MoveNext()
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.Visit()
at Unify.Framework.Visitor.VisitEvaluateOnThreadPoolT(IEnumerable`1 visitCollection, Action`2 visitor, Int32 maxThreads)
at Unify.Framework.RepositoryChangeDetectionWorkerBase.PerformChangeDetection(IEnumerable`1 connectorEntities)
at Unify.Framework.ChangeDetectionImportAllJob.ImportAllChangeProcess()
at Unify.Framework.ChangeDetectionImportAllJob.RunBase()
at Unify.Framework.MutexJobDecorator.Run()
at Unify.Framework.DefinedScopeJobAuditTrailJobDecorator.Run()
at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal
Extensibility.zip

Improve exception for incorrectly name field
The error message (seen at IDBMDAX40:Import fails an arguments are not valid message) is not particularly helpful in identifying the problematic field. It should include the field name, as well as suggest how to resolve the issue.

Upgrade from 3 to 5 does not update the DB name and Server name in Unify.Framework.Data.DataEnginePlugInKey.extensibility.config.xml
When I test the upgrade from Ideb 3 to IdB 5 using all the files in the IdB 3 Extensibility folder the "Unify.Framework.Data.DataEnginePlugInKey.extensibility.config.xml" file is not updated with the data entered during the installation process.
The Database name and DB server needed to be changed:
From
<?xml version="1.0" encoding="utf-8" ?> <DataEngine> <dataRepository> <dataConnection name="sql" repository="Unify.IdentityBroker" connectionString="Data Source=localhost;Initial Catalog=Unify.IdentityBroker;Integrated Security=True" /> </dataRepository> </DataEngine>
To:
<?xml version="1.0" encoding="utf-8" ?> <DataEngine> <dataRepository> <dataConnection name="sql" repository="Unify.IdentityBroker" connectionString="Data Source=svr-app1;Initial Catalog=Unify.IdentityBroker5;Integrated Security=True" /> </dataRepository> </DataEngine>

Handling of ModifyAnchor when the Identity Broker ID is being provisioned
The following error was thrown when attempting to provision a new user to the SharePoint Org Profile connector (which is not a ModifyAnchor connector, see IDBSP-44):
System.ServiceModel.FaultException`1System.ServiceModel.ExceptionDetail: Object reference not set to an instance of an object. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is:
System.NullReferenceException: Object reference not set to an instance of an object.
at Unify.Notification.TaskNotifier`1.Dispose()
at Unify.Framework.EventNotifierModifyAnchorConnectorDecorator.ModifyAnchor(MultiKeyValue oldKey, MultiKeyValue newKey)
at Unify.Framework.Adapter.<>c_DisplayClass34.<CheckAnchorChangeOnSave>b_2f(KeyValuePair`2 keyValue)
at Unify.Framework.Visitor.<>c_DisplayClass1`1.<Visit>b_0(T item, Int32 index)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`2 visitor)
at Unify.Framework.Visitor.VisitT(IEnumerable`1 visitCollection, Action`1 visitor)
at Unify.Framework.Adapter.CheckAnchorChangeOnSave(IEntitySchema connectorSchema, IEnumerable`1 entitiesToSave, IEntityPartitionUpdatableContext connectorContext, IEnumerable`1 entityIds)
at Unify.Framework.Adapter.SaveEntities(IEnumerable`1 entities, Boolean reflect)
at Unify.Framework.A...).
This was resolved by removing the creation of the Identity Broker ID from the provisioning logic, however, there may be solutions where this is a design requirement where no other uniqueness can be guaranteed at provision time. Regarding the above, the entity was being added, so no modify behaviour should be taking place. This behaviour either needs to be corrected, or a better error message put in its place (if there is a legitimate reason a modify operation is being attempted and failing with a null reference).

Management Studio "connector circles" remain green after certain errors.
When certain errors occur within an Identity Broker for Aurion connector, the Management Studio circles continue to spin green instead of correctly turning red.
Customer support service by UserEcho