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.

0
Completed

BeginExport should fail on service unavailable

Matthew Clark 13 years ago in UNIFYBroker/Microsoft Identity Manager updated by anonymous 9 years ago 8

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.

0
Fixed

An import to Identity Broker fails due to a NullReferenceException

Bob Bradley 12 years ago updated by anonymous 9 years ago 18

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.&lt;DistinctIterator&gt;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.&lt;&gt;c__DisplayClass12`3.&lt;CombineSelectors&gt;b__11(TSource x)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Unify.Framework.EnumerableExtensions.&lt;ActionOnLast&gt;d__16`1.MoveNext()
   at System.Linq.Enumerable.&lt;SelectManyIterator&gt;d__14`2.MoveNext()
   at Unify.Framework.EnumerableExtensions.&lt;ActionOnLast&gt;d__16`1.MoveNext()
   at System.Linq.Enumerable.&lt;SelectManyIterator&gt;d__14`2.MoveNext()
   at Unify.Framework.EnumerableExtensions.&lt;ActionOnFirst&gt;d__1c`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at Unify.Framework.ActionOnExceptionEnumerator`1.MoveNext()
   at Unify.Framework.EnumerableExtensions.&lt;ActionOnLast&gt;d__16`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.&lt;SelectManyIterator&gt;d__14`2.MoveNext()
   at System.Linq.Enumerable.&lt;ConcatIterator&gt;d__71`1.MoveNext()
   at Unify.Framework.LDIFComponentFileGenerator`1.GenerateFile(TextWriter writer, IEnumerable`1 entries)
   at Unify.Framework.LDIFAdapter.&lt;&gt;c__DisplayClass7`1.&lt;CreateLDIFComponentStream&gt;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
0
Fixed

Group Membership Connector failed with reason Type System.String is not supported.

Matthew Woolnough 12 years ago in UNIFYBroker/Learnology Life updated by anonymous 9 years ago 3

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
0
Completed

Improve exception for incorrectly name field

Adam van Vliet 12 years ago in UNIFYBroker/Microsoft Dynamics AX updated by anonymous 9 years ago 1

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.

0
Fixed

Upgrade from 3 to 5 does not update the DB name and Server name in Unify.Framework.Data.DataEnginePlugInKey.extensibility.config.xml

André van der Westhuizen 9 years ago updated by anonymous 9 years ago 1

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>
0
Fixed

Handling of ModifyAnchor when the Identity Broker ID is being provisioned

Matthew Clark 13 years ago updated by anonymous 9 years ago 6

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).

0
Fixed

Management Studio "connector circles" remain green after certain errors.

Patrick Johannessen 14 years ago in UNIFYBroker/Aurion updated by anonymous 9 years ago 7

When certain errors occur within an Identity Broker for Aurion connector, the Management Studio circles continue to spin green instead of correctly turning red.

0
Fixed

Exporting or saving entities CONTACT_PHONE failed for Identity Broker for Aurion - Error: pecified item CONTACT_PHONE does not exist for function QUERY_TO_XML

Shane Lim 14 years ago in UNIFYBroker/Aurion updated by anonymous 9 years ago 2

Configurating Identity Broker for Aurion write "ContactPhoneNo" back to Aurion system in Identity Broker configuration.
The configuration should be correct as there are times that I can perform update into Aurion system and other times I cannot.

Performed the following are the observation at various point of data flow:

1. In Aurion HR system the ContactPhoneNo = (09) 622 1123
2. Projected into Metaverse telephoneNumber = (09) 622 1123
3. Provisioned into AD MA cs telephoneNumber = (09) 622 1123
4. Exported to AD endpoint
5. Modified in AD endpoint telephoneNumber = (01) 111 1111 - change made in AD to flow back to Aurion
6. Imported into AD MA cs telephoneNumber = (01) 111 1111
7. Did a Full Sync
8. Updated Aurion MA cs ContactPhoneNo = (01) 111 1111
9. Exported Aurion MA
10. In IdB's Adapter entity search = ContactPhoneNo = (01) 111 1111
11. In IdB's Connector entity search = ContactPhoneNo = (01) 111 1111 - changed reflected in Identity Connector entity search as expected
12. In Aurion HR system Contact_Phone_Number = (09) 622 1123 - change did not update in Aurion system. In correct result

After several tried with failure the following error is found in the Identity Broker log file:

20101026,11:27:29,Save entities to connector failed.,Connector,Warning,"Save entities Count:1 to connector Aurion Person failed with reason Aurion API error -1: Specified item CONTACT_PHONE does not exist for function QUERY_TO_XML. Duration: 00:00:01.0585937
Error details:
Unify.Communicators.AurionApiCommunicatorException: Aurion API error -1: Specified item CONTACT_PHONE does not exist for function QUERY_TO_XML
at Unify.Communicators.AurionWebServiceApiCommunicator.RaiseExceptionOnErrorCondition(Decimal pStatus, String pMessage)
at Unify.Communicators.AurionWebServiceApiCommunicator.SetValue(String item, String value)
at Unify.Communicators.AurionApiFunctionBase.SetStringValue(String item, String value)
at Unify.Communicators.EmpUpdatePersAurionApiFunction.SetFunctionValues()
at Unify.Communicators.AurionApiFunctionBase.RunFunction()
at Unify.Communicators.AurionCommunicator.SaveEmployee(IAurionEmployee employee)
.
.
.

It could be that while Identity Broker is performing "getAllEntities" and I run "Export" profile in FIM may created a conflict or confusion with the Aurion API.

Here is Shane Day's thought on this error:

I've had another thought about this - the Aurion API only allows one concurrent transaction, therefore if you are attempting two transactions (a query, and an update) at once, the API gets confused. That's the source of that error.

I'm going to suggest that we put a mutex around operations with one Aurion instance to prevent this situation from occurring. It already cannot happen by two query requests as the connectors are all in the same connector group.

0
Fixed

Import fails on CSV connectors when no entities exist in the connector

Patrick Johannessen 14 years ago in UNIFYBroker/Aurion updated by anonymous 9 years ago 4

Full imports fail on CSV connectors when there are no existing entities in the connector.

0
Completed

The CSV connectors should be upgraded with support for MultiKeyValue

Patrick Johannessen 14 years ago in UNIFYBroker/Aurion updated by anonymous 9 years ago 3

Currently, the CSV connectors in Identity Broker for Aurion are single-keyed connectors of type StringValue.

As there is a small chance that the usage of these connectors at the Department of Finance will require composite keys, the connectors should be upgraded to support this possibility.