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.
Multivalue Group tranform didn't update field when source field was updated
I have two MV Group transforms in an adapter:
The MemberUPNs field updated correctly, but MemberAzureIDs did not. There are six values in MemberUPNs, but only two in MemberAzureIDs. Manual validation confirms that the matching values in the second transform's connector are present and correct. I do not know what the old value of MemberUPNs was.
I believe the change occurred on 30/6/21 some time in the hour or two prior to 8am, but unfortunately the corresponding log file has already been deleted.
Closing this item as it appears to be a misdiagnosis. Feel free to re-open if the issue surfaces again and presents the same way.
Error on Techone SMS staff Connector - TechOne SMS Staff failed with reason The key has been duplicated
Below is from the IDB Logs; I cannot find the duplicate value for the user accounts. Could you please let me know what could be another issue here?
Thank you
Connector Processing page 1 for connector TechOne SMS Staff failed with reason The key CARLSSOS has been duplicated.. Duration: 00:00:00.9687755.
Error details:
System.ArgumentException: The key CARLSSOS has been duplicated.
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue arg1)
at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashError[TKey,TValue,TOriginal](IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction)
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass3.b__0(IEnumerable`1 page)
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()",Normal
20210704,15:30:57,UNIFY Identity Broker,Connector Processor,Information,"Connector Processing started.
Connector Processing started for connector TechOne SMS Staff (page 2)",Normal
20210704,15:30:58,UNIFY Identity Broker,Connector Processor,Information,"Connector processing failed.
Connector Processing page 2 for connector TechOne SMS Staff failed with reason The key GOODMANN has been duplicated.. Duration: 00:00:01.4374637.
Error details:
System.ArgumentException: The key GOODMANN has been duplicated.
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue arg1)
at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashError[TKey,TValue,TOriginal](IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction)
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass3.b__0(IEnumerable`1 page)
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()",Normal
20210704,15:31:23,UNIFY Identity Broker,Connector Processor,Information,"Connector Processing started.
Connector Processing started for connector TechOne SMS Staff (page 3)",Normal
20210704,15:31:25,UNIFY Identity Broker,Connector Processor,Information,"Connector processing failed.
Connector Processing page 3 for connector TechOne SMS Staff failed with reason The key ANDREWE has been duplicated.. Duration: 00:00:01.9218138.
Error details:
System.ArgumentException: The key ANDREWE has been duplicated.
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.DuplicateKeyBase(MultiKeyValue arg1)
at Unify.Framework.Collections.EnumerableExtensions.ToDictionaryWithKeyClashError[TKey,TValue,TOriginal](IEnumerable`1 originalEnumerable, Func`2 keySelector, Func`2 valueSelector, Action`3 duplicateAction)
at Unify.Product.IdentityBroker.EntityRepositoryExtensions.ConvertConnectorEntitiesWithRepositoryEntities(IEnumerable`1 connectorEntities, IMultiKey`1 schemaKey, IQueryable`1 sourceEntities, Guid connectorId, IEnumerable`1 originalEntities)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.PerformChangeDetectionOnConnectorEntityPage(IEnumerable`1 connectorEntities, Int32& index, Int32 entitiesProcessedSoFar, IEntityChangesReportGenerator`2 reportGenerator)
at Unify.Product.IdentityBroker.RepositoryChangeDetectionWorkerBase.<>c__DisplayClass3.b__0(IEnumerable`1 page)
at Unify.Framework.Visitor.ThreadsafeVisitorEvaluator`1.ThreadsafeItemEvaluator.Evaluate()",Normal
Hi Abhishek,
This means that while importing data from the system (TechOne SMS Staff), there are duplicate keys coming through. UNIFYBroker can't process the data if the primary key is not unique.
Check the system that the data is being imported from to see if there are records with duplicated keys.
Inexplicable 'Source entity shared a join target with another source entity'
I am seeing this familiar error:
(Baseline synchronization failed with the message "Source entity '93fe60b9-05ba-4b92-b167-80738bdad66a' shares a join target with another source entity: '695411ab-e878-4ae2-9e39-f04267ac6767'. Cannot proceed with join.". See logs for more details.)
I can't see why this is the case - the join criteria is on source field 'EmployeeNumber' and those two source entities have different values:
93fe60b9-05ba-4b92-b167-80738bdad66a EmployeeNumber=145627
695411ab-e878-4ae2-9e39-f04267ac6767 EmployeeNumber=145158
Could you please look at the joins in the database and tell me what's going on internally to see if that sheds light on how this has happened?
The environment has been running for months now, untouched from an administrative perspective.
Because I can see 66 pending incoming updates on that link that aren't being processed it seems like this failure is either (a) blocking all subsequent mappings for that link, or (b) happening for 66 different joins. The customer reported that their upstream changes are not flowing through to AD.
Not enough detail to properly investigate/replicate this issue. Happy to be reopened if the issue resurfaces
Unify Identity Broker- The transaction has aborted Error
Hi,
We are using Unify identity Broker version v4.1.1 Revision #1 and one of the Connector is having below error
Import All Run
Change detection engine import all items for connector Aurion Staging Staff Details Connector failed with reason The transaction has aborted.. Duration: 00:12:00.6306978
Based on my understanding, Connector is timing out if it's runs more than 10mins and I'm unable to find the set timeout threshold field limit in Identity broker. Can you please confirm where it could be set or is there option to set the version we have.
Thank you
Below is from the logs
Direct communicator Exception occured after [00:10:18.3617284] duration. System.Transactions.TransactionAbortedException: The transaction has aborted. ---> System.TimeoutException: Transaction Timeout --- End of inner exception stack trace --- at System.Transactions.TransactionStateAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState) at System.Transactions.CommittableTransaction.Commit() at System.Transactions.TransactionScope.InternalDispose() at System.Transactions.TransactionScope.Dispose() at Unify.Framework.Data.AdoNetDataControl.ExecuteDataSetQuery(DataSet resultSet, String commandText, IEnumerable`1 parameters, String[] tableNames, CommandType commandType) at Unify.Framework.Data.AdoNetDataControl.ReturnDataSetQuery[T](String commandText, IEnumerable`1 parameters, String[] tableNames, CommandType commandType) at Unify.Product.IdentityBroker.DirectCommunicatorBase`1.GetAllEntitiesDataTable() at Unify.Product.IdentityBroker.DirectCommunicatorBase`1.GetAllEntities() |
Hi Abhishek,
The timeout for the database connector can be set on the agent that is used for that connector. In this case that appears to be the SQL server agent, which has a configuration setting for Operation Timeout.
You can find details on that configuration here: SQL Server Database Agent / UNIFYBroker knowledge / UNIFY Solutions
Understand change detection better
I have these adapter transforms set up:
Changes to the EmployeeNumbers attribute should flow through the following other attributes in this order:
- MemberADUPNs (first MVG transform)
- MemberAzureUPNs (PowerShell transform)
- MemberAzureIDs (second MVG transform)
Sometimes when EmployeeNumbers values are updated I see MemberADUPNs and MemberAzureUPNs updating correctly, but MemberAzureIDs does not update with the new value like it should.
Q1. Is this because "PowerShell transforms break change detection"? i.e. UNIFYBroker doesn't know that it needs to run the second MVG transform to update MemberAzureIDs, because it has no way to know that that MemberAzureUPNs may be updated by the PowerShell transform?
Q2. Could Beau's new "Register-Contribution" cmdlet be used in the PowerShell transform to make it so it does?
Flag to configure UNIFYBroker/Plus to delete adapter entities with incomplete joins
If an adapter has an incomplete entity on a link (i.e. no matching locker entity for the join criteria) then currently UNIFYBroker reports a warning. In many circumstances it would be appropriate to delete the adapter entity in this situation, to ensure the external data source was kept in sync with the locker. Add a configuration flag to enable this functionality.
Add ability to recreate deleted future-dated adapter changes (Time Offset Flag etc)
In ticket https://voice.unifysolutions.net/en/communities/6/topics/4238-time-offset-flag-didnt-re-evaluate-when-date-threshold-was-passed?redirect_to_reply=21889# Beau mentions that:
Add functionality to recreate deleted future-dated adapter changes to the UNIFYBroker UI (and API).
This should also be called automatically after a Clear Adapter Changes operation completes, because it is unlikely that there are any conceivable scenario where future-dated changes should not be restored, and without them UNIFYBroker does not operate sensibly (i.e. expected transforms silently fail to trigger when the configuration suggests they should).
Also, update the Clear Adapter Changes documentation in Voice to indicate that after running Clear Adapter Changes some transforms will no longer work correctly until Clear Precalculated Entities is run or all relevant date fields on all adapter entities are updated.
Time Offset Flag didn't re-evaluate when date threshold was passed
I have the following Time Offset Flag adapter transformation configured:
For the problematical entity the EndTimestampUTC field is "4/22/2021 12:00:00 PM" (i.e. midnight at the start of April 23rd in my customer's timezone - NZ), so the corresponding UTC timestamp for the threshold comparison should be "5/7/2021 12:00:00 PM" (i.e. midnight at the start of May 8th in NZ timezone). EndTimestampUTC was changed to that value on May 7 (i.e. before UTC 5/7/2021 12:00:00 PM) but even though today is now May 10th the PostEndPlus14 field hasn't been re-evaluated to "Yes" as I would have expected (i.e. transition from the ">" case to the "<" case).
To allow a better chance to debug I have not run a Generate Changes on the adapter yet.
How soon will temporal transformations (e.g. Time Offset) be re-evaluated after the current date and time changes?
How soon will temporal transformations (e.g. Time Offset) be re-evaluated after the current date and time changes?
Baseline Sync calling connector entity update for all entities even when there are no value changes
When a Baseline Sync runs on a link the connector's update export functionality is called to update every entity, even when there are no field value changes. This places an unnecessary load on UNIFYBroker and performs null updates against the external system for no discernible reason, and since UNIFYBroker/Plus is unable to sync any other links while this takes place can result in unnecessary processing delays while the connector is busy effectively doing nothing.
Customer support service by UserEcho