Itgenclr009 An item with the same key has already been added

Ik krijg in de Invantive Clod bij het openen van UniversalSQL-editor de volgende foutmelding:

itgenclr009
An item with the same key has already been added.
Key: .
Er is een onbekende fout opgetreden.

Het gaat om een koppeling met Exact Online. Hoe komt dit?

Het lijkt erop dat Invantive probeert de divisions dubbel in te laden. Hoe kan ik dit verhelpen? In Exact Online komt namelijk geen dubbele administratiecode voor.

Een nieuwe release is in productie genoment met aanvullende logging.

Kunt u de foutmelding nogmaals opwekken en de foutcode en -tekst hier toevoegen?

Foutmelding:

itgenbed003
An element with the key ‘’ already exists in a dictionary of String and Partition.
An item with the same key has already been added. Key: .

Call stack:

System.ArgumentException
InvantiveSystemException
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at Invantive.Basics.ExtensionMethods.AddSafe[K,V](IDictionary`2 dictionary, GlobalState owner, ExecutionOptions executionOptions, K key, V val, Func`2 exceptionFunc, String context)
   at Invantive.Data.PartitionCollection.RegisterForSelection(GlobalState owner, ExecutionOptions executionOptions, Partition partition)
   at Invantive.Data.GenericProvider.SetSelectedPartitions(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SetPartitionMode setPartitionMode, String[] partitionCodes)
   at Invantive.Data.Providers.ExactOnline.ExactOnlineProvider.SetSelectedPartitions(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SetPartitionMode setPartitionMode, String[] partitions)
   at Invantive.Sql.V1.UseStatementTree.Fetch(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, IQueryStatePerExecution queryStatePerExecution, SparseArrayPool sparseArrayPool, ParameterList parameters, FirehoseResultSet results, ISparseArray pSqlVariableRow, SqlColumnDefinitionCollection oldNewTriggerFields, ISparseArray oldTriggerRow, ISparseArray n
   at Invantive.Data.CompressedEnumerable`1.GetEnumerator()+MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.Iterator(GlobalState owner, ExecutionOptions executionOptions, IQueryStatePerExecution queryStatePerExecution, SparseArrayPool sparseArrayPool, SqlExecutionStep parentStep, ISparseArray outerRow, ISparseArray pSqlVariableRow, SqlColumnDefinitionCollection oldNewTriggerFields, ISparseArray oldTriggerRow, ISparseArray newTriggerRow, SqlColumnDefinitio
   at Invantive.Sql.V1.QueryPlan.CorrectAndCheckData(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, SparseArrayPool sparseArrayPool, IEnumerable`1 data, String sqlStatement, String fullQualifiedName)+MoveNext()
   at Invantive.Data.ExtensionMethods.IteratorWithFinally`1.IteratorWithFinallyEnumerator.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, SqlExecutionStep sqlExecutionStep, String callSafeNameOverrule)
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, SqlExecutionStep sqlExecutionStep, String actionSql, ParameterList parameters, String callSafeNameOverrule, String originCode)

Door middel van delegatie is toegang verleend.

Het probleem wordt veroorzaakt door de instructie use all@eol die wordt uitgevoerd bij het openen van de database.

Zonder selectie van partities opent de editor en selecteert standaard het laatst gebruikte bedrijf in Exact Online.

Elke volgende use-instructie mislukt echter met itgenbed003:

  • use all@eol
  • use default@eol
  • use 123123@eol

Een analist zal het probleem onderzoeken.

Voor verdere analyse is traditionele toegang noodzakelijk. Zodra beschikbaar zal dit punt weer opgepakt worden.

Een bugfix is gemaakt en in productie genomen op Invantive Cloud.

De gevonden oorzaak is dat de Exact Online-driver ook een module bevat voor Exact Online Premium zoals Beperk toegang tot specifieke administraties op de Exact Online Premium-database op SQL Server. Deze mogen we momenteel nog niet beschikbaar stellen, maar de module draait wel (inactief) mee.

Recente aanpassingen waren niet doorgevoerd voor het Exact Online Premium-onderdeel. Dit is gecorrigeerd. Dit verklaart ook waarom enkel een deel van de gebruikers er last van had; dit betrof uitsluitend gebruikers van Exact Online Premium. Exact Online SaaS-gebruikers hadden er geen last van omdat de module niet mee kan draaien.

Meer informatie is te vinden onder: