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
Under review

Adapter DN / container change not displaying warning

Matthew Davis (Technical Product Manager) 6 years ago updated 3 years ago 1

As per the documentation ( https://voice.unifysolutions.net/knowledge-bases/7/articles/2873-adapter-overview ), a change in the DN template for an adapter, should generate a warning for clearing precalculated entities and generating changes again to ensure entities are updated appropriately. 

There appears to be a bug in 5.3.1, where changing the DN template does not generate a warning on the UI or in the logs. 

It would be good if the warning could be also generated for a change in the adapter object class or container name, if appropriate.

0
Declined

Dates viewing and exposing in different formats

Matthew Davis (Technical Product Manager) 6 years ago updated 6 years ago 3

When a date field is configured on a connector / adapter in UNIFYBroker, it displays in the entity view table in a friendly format (such as 04/Jul/2014). However, when exposed into a PowerShell transformation or downstream, it is exposed in a different format (2014-07-04T00:00:00.000)

This is also true for the Timestamp field, which displays in the entity view table as something like 04/07/2014 12:00:00 AM

It would be good if you could see the raw date format as exposed by the gateways, as well as a formatted date for easier reading.

It would also be good to get some consistency across the formats that are displayed in the entity view tables.

0
Planned

Validate CSV File exists on connector creation

Matthew Davis (Technical Product Manager) 6 years ago updated 2 years ago 2
If you add a CSV connector, and in the file path you put a CSV that doesn't exist, the workflow is a bit unfriendly. It creates the connector (which isn't obvious), but redirects you to the homepage with the following screen:

Image 4846


This seems to happen because it tries to load the CSV file to get the schema but can't.
I feel like it would be better to validate the file exists when creating the connector. If it doesn't, either throw an error that stops creation - or still show the connector page but show a schema error further down.

On another funny note, if you navigate to the connector page after creation, this is what displays:

Image 4847


It has trouble loading the connector image URL - it puts something really really funny into the image link:
<img alt="Unify.Connectors.CSV - The CSV connector allows for manipulation of a source CSV file. Useful for solution testing." class="AutoThumbnail" src="1b175bc1-da20-4064-9d74-d43e5744931f.connector" style="vertical-align: middle;" title="Unify.Connectors.CSV - The CSV connector allows for manipulation of a source CSV file. Useful for solution testing.">

Only fixes when you go into "edit connector" and "save". Saves successfully and shows the correct image after (even if the csv file still doesn't exist).

0
Answered

Error -2147467259: failed to create SQL database: UnifyIdentityBroker, error detail: unknown error.

Matthew Davis (Technical Product Manager) 6 years ago updated by Adam van Vliet 6 years ago 3

On installing UNIFYBroker with the database server being remote, the following is logged by the installer:

CreateDatabase:  Error 0x80004005: failed to create to database: 'UnifyIdentityBroker', error: unknown error
MSI (s) (2C!88) [11:12:22:654]: Product: UNIFYBroker/Service v5.3.1 RC1 -- Error 26201. Error -2147467259: failed to create SQL database: UnifyIdentityBroker, error detail: unknown error.

Error 26201. Error -2147467259: failed to create SQL database: UnifyIdentityBroker, error detail: unknown error.
CustomAction CreateDatabase returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Answer
Adam van Vliet 6 years ago

Thanks Adam.

Turns out the SQL Server Browser service was disabled by default from the SQL installer. Enabling and starting it resolved the issue.

0
Fixed

Group Transformation hits an upper limit

IDB 5.3.1.0

I'm currently using a group transformation to determine the child objects for org units, and mapping their relational DN (multi valued).

I'm finding that i'm getting the following error in the adapter when it attempts to run reflection:

Adapter
Adapter 81400d1b-2122-4571-92a8-c12470291968 page errored on page reflection. Duration: 00:00:02.5781432. Error: System.Exception: Max iteration count exceeded for base key discovery: ChildOrganisationUnits
at Unify.Product.IdentityBroker.KnownEntityBase`3.GetBaseKeysIter(TKey key)
at Unify.Product.IdentityBroker.KnownEntityBase`3.GetValueOriginInformation(TKey key)
at Unify.Product.IdentityBroker.EntityToEntityValueOriginsAdapter`2.<>c__DisplayClass3_0.<Transform>b__0(GroupedNameValueCollectionKey schemaKey)
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
at Unify.Framework.Collections.ThreadsafeHashSet`1.UnionWith(IEnumerable`1 enumerable)
at Unify.Product.IdentityBroker.Adapter.WriteReflectionPageAdapterChanges(IAdapterEntityPartitionUpdatableContext adapterContext, IEntityValueOriginContext originContext, IDictionaryTwoPassDifferenceReport`4 report)
at Unify.Product.IdentityBroker.Adapter.ReflectChangesInner()
at Unify.Product.IdentityBroker.Adapter.ReflectChanges()
at Unify.Product.IdentityBroker.AdapterAuditingDecorator.ReflectChanges()
at Unify.Product.IdentityBroker.AdapterNotifierDecorator.ReflectChanges()
at Unify.Product.IdentityBroker.ReflectAdapterOnChangeDueJob.<RunBase>b__9_0(IOperationalAdapter adapter).
Error details:
System.Exception: Max iteration count exceeded for base key discovery: ChildOrganisationUnits
at Unify.Product.IdentityBroker.KnownEntityBase`3.GetBaseKeysIter(TKey key)
at Unify.Product.IdentityBroker.KnownEntityBase`3.GetValueOriginInformation(TKey key)
at Unify.Product.IdentityBroker.EntityToEntityValueOriginsAdapter`2.<>c__DisplayClass3_0.<Transform>b__0(GroupedNameValueCollectionKey schemaKey)
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__16`2.MoveNext()
at System.Collections.Generic.HashSet`1.UnionWith(IEnumerable`1 other)
at Unify.Framework.Collections.ThreadsafeHashSet`1.UnionWith(IEnumerable`1 enumerable)
at Unify.Product.IdentityBroker.Adapter.WriteReflectionPageAdapterChanges(IAdapterEntityPartitionUpdatableContext adapterContext, IEntityValueOriginContext originContext, IDictionaryTwoPassDifferenceReport`4 report)
at Unify.Product.IdentityBroker.Adapter.ReflectChangesInner()
at Unify.Product.IdentityBroker.Adapter.ReflectChanges()
at Unify.Product.IdentityBroker.AdapterAuditingDecorator.ReflectChanges()
at Unify.Product.IdentityBroker.AdapterNotifierDecorator.ReflectChanges()
at Unify.Product.IdentityBroker.ReflectAdapterOnChangeDueJob.<RunBase>b__9_0(IOperationalAdapter adapter)


I'm assuming that it's because there's a forced upper limit on how many times it can loop through to find related entities and group - and i'm exceeding that limit with the children.

Would it be possible to get this limit configurable or similar? I'm unsure how many children the largest parent has, but some way around the upper limit would be fantastic.

0
Fixed

Entity Search Table Errors

Matthew Davis (Technical Product Manager) 7 years ago updated 6 years ago 9

When using v5.3 entity search table (either connector or adapter), i'm running into a couple of errors;

If I attempt to order a column (just by clicking on the header), and any entity in the set has a NULL value for that field, I get this error from datatables:


Error
System.AggregateException: One or more errors occurred. ---> Unify.Framework.Client.SwaggerException: The HTTP status code of the response was not expected (500).
at Unify.Connect.Web.Client.EntityClient.<searchentitiesasync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Connect.Web.Client.ProfiledEntityClient.<searchentitiesasync>d__4.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at Unify.Connect.Web.IdentityBrokerEntitySearchController.CurrentEntities(EntityRetrievalInformation`1 information)
at Unify.Connect.Web.IdentityBrokerEntitySearchController.<entitydata>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at lambda_method(Closure , Task )
at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass34.<begininvokeasynchronousactionmethod>b__33(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<invokeactionmethodfilterasynchronouslyrecursive>b__3c()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass45.<invokeactionmethodfilterasynchronouslyrecursive>b__3e()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<>c__DisplayClass28.<begininvokeaction>b__19()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<begininvokeaction>b__1b(IAsyncResult asyncResult)
---> (Inner Exception #0) HTTP Response: {"Message":"An error has occurred.","ExceptionMessage":"The entity does not contain a value for the XYZ field.","ExceptionType":"Unify.Framework.Collections.GroupedNameValueCollectionMissingFieldException",
"StackTrace":" at Unify.Product.IdentityBroker.EntityBase`3.GetValue[TValue](TKey key)\r\n 
at Unify.Connect.Web.ValueTypeIdentifierEntitySearchUtilityBase`4.<>c__DisplayClass1_0.<orderby>b__0(TEntity item)\r\n 
at System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count)\r\n at System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count)\r\n at System.Linq.OrderedEnumerable`1.<getenumerator>d__1.MoveNext()\r\n at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor)\r\n at Unify.Product.IdentityBroker.EntityController.ApplySkipTake(IEnumerable`1 entities, Int32 skip, Int32 take)\r\n at Unify.Product.IdentityBroker.EntityController.ApplySearch(SearchInformation searchInformation, IEnumerable`1 entities, Guid partitionId)\r\n at Unify.Product.IdentityBroker.EntityController.SearchEntities(Guid partitionId, SearchInformation searchInformation)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<getexecutor>b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<invokeactionasynccore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<executeasync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<executeauthorizationfilterasynccore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<sendasync>d__1.MoveNext()"} Unify.Framework.Client.SwaggerException: The HTTP status code of the response was not expected (500).
at Unify.Connect.Web.Client.EntityClient.<searchentitiesasync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Connect.Web.Client.ProfiledEntityClient.<searchentitiesasync>d__4.MoveNext()<---</searchentitiesasync></searchentitiesasync></sendasync></executeauthorizationfilterasynccore></executeasync></invokeactionasynccore></getexecutor></getenumerator></orderby></begininvokeaction></begininvokeaction></invokeactionmethodfilterasynchronouslyrecursive></invokeactionmethodfilterasynchronouslyrecursive></begininvokeasynchronousactionmethod></entitydata></searchentitiesasync></searchentitiesasync>


Likewise, If I attempt to use the "Is-Null" filter on any column (whether they're all populated or not), I get the following error:

Error
System.AggregateException: One or more errors occurred. ---> Unify.Framework.Client.SwaggerException: The HTTP status code of the response was not expected (500).
at Unify.Connect.Web.Client.EntityClient.<searchentitiesasync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Connect.Web.Client.ProfiledEntityClient.<searchentitiesasync>d__4.MoveNext()
--- End of inner exception stack trace ---
at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
at Unify.Connect.Web.IdentityBrokerEntitySearchController.CurrentEntities(EntityRetrievalInformation`1 information)
at Unify.Connect.Web.IdentityBrokerEntitySearchController.<entitydata>d__35.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at lambda_method(Closure , Task )
at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass34.<begininvokeasynchronousactionmethod>b__33(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<invokeactionmethodfilterasynchronouslyrecursive>b__3c()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass45.<invokeactionmethodfilterasynchronouslyrecursive>b__3e()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<>c__DisplayClass28.<begininvokeaction>b__19()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass1e.<begininvokeaction>b__1b(IAsyncResult asyncResult)
---> (Inner Exception #0) HTTP Response: {"Message":"An error has occurred.","ExceptionMessage":"Could not find any resources appropriate for the specified culture or the neutral culture. Make sure \"Unify.Connect.Web.EntityResources.resources\" was correctly embedded or linked into assembly \"Unify.IdentityBroker.Entity.Api.Shared\" at compile time, or that all the satellite assemblies required are loadable and fully signed.","ExceptionType":"System.Resources.MissingManifestResourceException","StackTrace":" at System.Resources.ManifestBasedResourceGroveler.HandleResourceStreamMissing(String fileName)\r\n at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo culture, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackCrawlMark& stackMark)\r\n at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture, Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)\r\n at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean createIfNotExists, Boolean tryParents)\r\n at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)\r\n at Unify.Connect.Web.IdentifierEntitySearchUtilityBase`2.GenerateSearchFunction(FilterInformation searchInformation, IDictionary`2 schema)\r\n at Unify.Product.IdentityBroker.EntityController.ApplyFilter(IEnumerable`1 entities, FilterInformation filterInformation, Guid partitionId)\r\n at Unify.Product.IdentityBroker.EntityController.<>c__DisplayClass8_0.<applyfilter>b__0(IEnumerable`1 filtered, FilterInformation filter)\r\n at System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable`1 source, TAccumulate seed, Func`3 func)\r\n at Unify.Product.IdentityBroker.EntityController.ApplySearch(SearchInformation searchInformation, IEnumerable`1 entities, Guid partitionId)\r\n at Unify.Product.IdentityBroker.EntityController.SearchEntities(Guid partitionId, SearchInformation searchInformation)\r\n at lambda_method(Closure , Object , Object[] )\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<getexecutor>b__9(Object instance, Object[] methodParameters)\r\n at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ApiControllerActionInvoker.<invokeactionasynccore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Controllers.ActionFilterResult.<executeasync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Filters.AuthorizationFilterAttribute.<executeauthorizationfilterasynccore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at System.Web.Http.Dispatcher.HttpControllerDispatcher.<sendasync>d__1.MoveNext()"} Unify.Framework.Client.SwaggerException: The HTTP status code of the response was not expected (500).
at Unify.Connect.Web.Client.EntityClient.<searchentitiesasync>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Unify.Connect.Web.Client.ProfiledEntityClient.<searchentitiesasync>d__4.MoveNext()<---</searchentitiesasync></searchentitiesasync></sendasync></executeauthorizationfilterasynccore></executeasync></invokeactionasynccore></getexecutor></applyfilter></begininvokeaction></begininvokeaction></invokeactionmethodfilterasynchronouslyrecursive></invokeactionmethodfilterasynchronouslyrecursive></begininvokeasynchronousactionmethod></entitydata></searchentitiesasync></searchentitiesasync>


I can seem to use other filters (such as "contains") on columns with null values no worries.

Replicated on both connector and adapter, on two machines. V5.3.0RTM

0
Declined

Ability to configure but not create database in installer

Matthew Davis (Technical Product Manager) 7 years ago updated 6 years ago 4

Currently in the Identity Broker installer, there are 3 options for database installations:

  • Attempt new install
  • Attempt upgrade
  • Manual install


Sometimes, you want to manually run the creation script (database server may not exist, etc) but you want to configure the database anyway. It would be great if there was an option to configure the database connection details, but a separate option for whether to actually run the installation script.

Answer

Suggestion not likely to provide a decent value tradeoff.

0
Planned

v5.3 Installer fails when SQL filenames do not match the DB name

Boyd Bostock 7 years ago updated by Matthew Davis (Technical Product Manager) 3 years ago 4

Attempted an upgrade of Identity Broker from v5.2 to v5.3, the upgrade process failed running the following SQL Commands

ALTER DATABASE [Unify.IdentityBroker_DEVAP610] SET RECOVERY SIMPLE;

ALTER DATABASE [Unify.IdentityBroker_DEVAP610] MODIFY FILE (NAME=[Unify.IdentityBroker_DEVAP610], FILEGROWTH=100MB);

ALTER DATABASE [Unify.IdentityBroker_DEVAP610] MODIFY FILE (NAME=[Unify.IdentityBroker_DEVAP610_log], FILEGROWTH=100MB);

The installer did not revert to the previous version of Identity Broker, instead it removed the service from the Services window.

I located the commands above in the Windows application log and attempted to run the command in SQL directly, it did not work as the files were named differently than names in the SQL Configuration.

In this case I renamed the SQL files as it is non-production and was able to run the installer successfully. I recall this issue with v5.2 and run through the DB manual upgrade process. I think this needs to be fixed for users that are not as familiar with installation options.

I am also not sure the settings should be made in the installer, if the SQL instance is clustered it will not support simple logging, also in large implementations I normally make the database file group by 1GB.

0
Declined

Expand Connector Test Harness functionality

Matthew Davis (Technical Product Manager) 7 years ago updated 5 years ago 3

Currently the connector test harness is great for copying a current connector schema, exporting its entities to CSV and then modifying that data to run operations against an end system through a connector.


Would it be possible to expand the functionality of the test harness, to allow operations on internal entities?
The idea is that you could clone a connector schema, copy its entities to CSV, and then modify those entities to mock changes through IDB. This would allow you to test adapter configuration or mock specific changes to entities without needing to modify the connector/adapter configuration to point to a different connector.

This would be useful for times when you want to test specific cases through the system but don't have access to make the changes in the end system, or don't want to export that kind of data out to the end system. It also allows you to speed up the testing process as you'd just be 'replacing' the 'import from end system' step in the process - the rest of the workflow would still happen, so it would allow for extensive (and potentially automated) configuration testing.

Answer

Not currently a use case that needs delivering, closing.

0
Answered

Connector import completes before Adapter reflection is complete

Boyd Bostock 7 years ago updated by Matthew Davis (Technical Product Manager) 6 years ago 7

Connector imports are completed before the Adapter reflection process is complete. When using Event Broker to schedule operations of Identity Broker and MIM this means that processing activity is still running when the next action runs.


In MIM this often results in a failed Delta Import and in Identity Broker multiple actions are running simultaneously further delaying reflection processing.


In connectors with large numbers of entities and several columns (especially multi-valued) or where there has been a significant amount of data change this can be several minutes after the Connector import has completed.


Ideally the Connector would show that it is still processing forcing Event Broker to wait for it to complete or add a way for Event Broker to wait until Adapter reflection is completed before running MIM operation.


Identity Broker Version: 5.2.0
Event Broker: 3.2.1

Answer

MIM Event Broker triggers when the adapter says it should, not the connector. Is this happening each 20K processed entities (a cutoff chosen to allow for transactions to work better)? There shouldn't be any impact, as MIM should be picking up the changed entities as they become available, and repeating until everything is done. At the end of the process, MIM Event Broker should only trigger on the last time when the adapter has been populated, not when the connector is finished, or are you not seeing this? Is this easily reproduced?