0
Fixed

Check transformation fields upon start up to avoid getting configuration error during operations

Shane Day (Chief Technology Officer) 13 years ago updated by anonymous 8 years ago 2

The following occurs if a field is populated twice by transformations:

20110104,01:38:47,Get changes from connector completed.,Connector,Information,Get changes from connector Chris21 Termination Connector reported 1 changes. Duration: 00:00:00,Normal 
20110104,01:38:47,Change detection engine poll completed.,Change detection engine,Information,Change detection engine poll for connector Chris21 Termination Connector returned 0 possible changes. Duration: 00:00:00.4375000,Normal 
20110104,01:38:50,Started processing changes register items.,Change detection engine,Information,Started processing changes register items for connector Chris21 Termination Connector.,Normal 
20110104,01:38:50,Changes register item processing on failed.,Change detection engine,Warning,"Changes register item processing on connector Chris21 Termination Connector failed with reason The column posstart is a pre-existing column. Please check your configuration before continuing.. Duration: 00:00:00 
Error details: 
Unify.Framework.AdapterColumnException: The column posstart is a pre-existing column. Please check your configuration before continuing. ---> System.ArgumentException: An item with the same key has already been added. 
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) 
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) 
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) 
   at Unify.Framework.AdapterColumnSources.Add(IAdapterEntityTransformationFactoryContribution contribution) 
   --- End of inner exception stack trace --- 
   at Unify.Framework.AdapterColumnSources.Add(IAdapterEntityTransformationFactoryContribution contribution) 
   at Unify.Framework.AttributeMapper.<>c__DisplayClass3.<AddContributingAdapterTransformation>b__2(KeyValuePair`2 mapping) 
   at Unify.Framework.Visitor.<>c__DisplayClass1`1.<Visit>b__0(T item, Int32 index) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor) 
   at Unify.Framework.AttributeMapper.AddContributingAdapterTransformation(IAdapterColumnSources contributingDictionary, Func`3 factoryContribution) 
   at Unify.Framework.EntityDistinguishedNameRelationMapperValueAdapterFactoryBase.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation) 
   at Unify.Framework.EntityChainAdapterFactory.ApplyChangeDetectionColumnInformation(IAdapterColumnSources columnInformation) 
   at Unify.Framework.AdapterEngine.CreateColumnSources(IAdapterEntityTransformationFactory factory, IEntitySchema baseSchema, Guid baseConnectorId) 
   at Unify.Framework.AdapterEngine.<>c__DisplayClass14.<CreateAdapter>b__12() 
   at Unify.Framework.ChainedTransformationChangeProcessor.PublishChange(IEnumerable`1 changedEntities, DateTime changeProcessTime, ICollection`1 changeRecords) 
   at Unify.Framework.ChainedTransformationChangeProcessor.ProcessChangeReport(IDictionaryTwoPassDifferenceReport`4 changesReport, DateTime changeProcessTime) 
   at Unify.Framework.ChangeReportProcessor.<>c__DisplayClassc.<ProcessCurrentReport>b__b(ITransformationChangeProcessor processor) 
   at Unify.Framework.Visitor.<>c__DisplayClass1`1.<Visit>b__0(T item, Int32 index) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor) 
   at Unify.Framework.ChangeReportProcessor.CreateAndProcessReport[T](IEnumerable`1 adapterTransformationProcessors, IEnumerable`1 sourceEnumerable, DateTime changeTime, Action`2 addAction) 
   at Unify.Framework.ChangeReportProcessor.ProcessReport(IChangeReportProcessingRequest request) 
   at Unify.Framework.Visitor.<>c__DisplayClass1`1.<Visit>b__0(T item, Int32 index) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`2 visitor) 
   at Unify.Framework.Visitor.Visit[T](IEnumerable`1 visitCollection, Action`1 visitor) 
   at Unify.Framework.ChangeReportProcessor.RunBase() 
   at Unify.Framework.JobBase.Run() 
   at Unify.Framework.AsynchronousJobExecutor.PerformJobCallback(Object state)",Normal 

It is proposed to give a better error message, and upon start-up of Identity Broker, for this error.