Foutmelding itgenfpr034 uit FoxPro bij AccountView door fouten in memovelden

Op een Foxpro database krijg ik benaderd vanuit Accountview de foutmelding itgenfpr034 voor de tabel ART_HDR:

itgenfpr034: More memo value errors than the allowed maximum of 101. Either fix the file corruption or increase the limit using the setting 'max-table-memo-value-errors'. (ART_HDR).

Hoe definieer ik dan dat dit limiet hoger mag?

Ik gebruik versie 20.0.110, na installatie en een testrun krijg ik deze foutmelding. Zie geen optie op de verbinding of in de releasenotes.

Beste is om eerst te kijken of de FoxPro bestanden te repareren zijn.

Als dat niet lukt, dan is er tot/met versie 20.1.266 geen praktische oplossing.

De AccountView connector opent talloze FoxPro connectors: 1 voor het AccountView data dictionary in Sys_vfp en 1 voor elke partitie die je queries raakt. Op AccountView vormen de combinatie van jaar plus administratie een partitie. Als je bijvoorbeeld twee administraties met elk drie boekjaren, dan opent de volgende query in totaal 7 FoxPro connectors:

use all

select count(*) from ART_HDR

De FoxPro connectors blijven daarna open zolang de AccountView connector geopend blijft.

Elke FoxPro connectors wordt geopend met de volgende defaults:

  • ignore-memo-value-errors op true:

Whether to ignore errors during interpretation of memo values.

  • max-table-memo-value-errors op 100:

Maximum number of memo value errors to allow in one table.

Vanaf de BETA versie 20.1.267 kun je deze connectorinstellingen ook aanpassen vanuit de AccountView connector via:

set max-table-memo-value-errors 1000

De instellingen voor deze twee instellingen worden dan doorgegeven aan elke FoxPro connector die geopend wordt vanuit AccountView.

Probleem is helaas nog niet opgelost, na het installeren van de 20.1.271 krijg ik nog steeds deze foutmelding in Query Tool. Je zou ergens moeten kunnen instellen waar je dit limiet kan verhogen, ik weet alleen niet waar. SQL, XML en batch geprobeerd in verschillende vormen. Hoe/waar stel je dit in?

itgenfpr034: More memo value errors than the allowed maximum of 100. Either fix the file corruption or increase the limit using the setting 'max-table-memo-value-errors'. (ART_HDR).

Bericht ID: 51f59145-9ec7-4691-8f31-417a895b5b8b

Opgetreden (UTC): 11/9/2020 3:46:15 PM

select /*+ ods(false) */ *
from   AccountView..ART_HDR
limit  10

Invantive.Basics.InvantiveSqlException
   at Invantive.Basics.ValidationException..ctor(GlobalState owner, ExecutionOptions executionOptions, String messageCode, String messageText, String kindRequest, String localStackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable)
   at Invantive.Basics.InvantiveSqlException..ctor(GlobalState owner, ExecutionOptions executionOptions, String validationCode, String errorMessage, String kindRequest, String stackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable, String poolIdentityId)
   at Invantive.Data.Providers.Foxpro.FoxproProvider.FetchInternal(GlobalState owner, ExecutionOptions executionOptions, EntityFieldCollection entityFields, QueryObject queryObject, ParameterList parameters, Boolean fetchSingle, Boolean fetchCountFirst, Int32 pagingSteps, Boolean fetchCount)
   at Invantive.Data.GenericProvider.Fetch(GlobalState owner, ExecutionOptions executionOptions, EntityFieldCollection entityFields, QueryObject queryObject, ParameterList parameters, Boolean fetchSingle, Boolean fetchCountFirst, Int32 pagingSteps, Boolean fetchCount)
   at Invantive.Data.Windows.Providers.AccountView.AccountViewProvider.RF.MoveNext()
   at Invantive.Data.SqlUtility.QPF.MoveNext()
   at Invantive.Data.ParallelSelectManyEnumerator`2.Read(GlobalState owner, ExecutionOptions executionOptions, TSource source, CancellationToken cancellationToken)
   at Invantive.Data.ParallelSelectManyEnumerator`2.<>c__DisplayClass31_1.<System.Collections.IEnumerator.MoveNext>b__0()
   at System.Threading.Tasks.Task.Execute()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
   at System.Threading.Tasks.Task.ExecuteEntry(Boolean bPreventDoubleExecution)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()
   at Invantive.Data.Providers.Foxpro.FoxproProvider.FetchInternal(GlobalState owner, ExecutionOptions executionOptions, EntityFieldCollection entityFields, QueryObject queryObject, ParameterList parameters, Boolean fetchSingle, Boolean fetchCountFirst, Int32 pagingSteps, Boolean fetchCount)
   at Invantive.Data.GenericProvider.Fetch(GlobalState owner, ExecutionOptions executionOptions, EntityFieldCollection entityFields, QueryObject queryObject, ParameterList parameters, Boolean fetchSingle, Boolean fetchCountFirst, Int32 pagingSteps, Boolean fetchCount)
   at Invantive.Data.Windows.Providers.AccountView.AccountViewProvider.RF.MoveNext()
   at Invantive.Data.SqlUtility.QPF.MoveNext()
   at Invantive.Data.ParallelSelectManyEnumerator`2.Read(GlobalState owner, ExecutionOptions executionOptions, TSource source, CancellationToken cancellationToken)
   at Invantive.Data.ParallelSelectManyEnumerator`2.<>c__DisplayClass31_1.<System.Collections.IEnumerator.MoveNext>b__0()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at (Object )
   at IBC.TEO.V(Object )
   at Invantive.Basics.ErrorConstants.ThrowOneOrMoreExceptions(GlobalState owner, ExecutionOptions executionOptions, IEnumerable`1 exceptions)
   at Invantive.Data.ParallelSelectManyEnumerator`2.System.Collections.IEnumerator.MoveNext()
   at Invantive.Sql.V1.DataSourceOrFunctionTree.<GetData>d__54.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.LP.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.SP.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.LP.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.SP.MoveNext()
   at Invantive.Sql.V1.ChainedFirehose.EP.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.SP.MoveNext()
   at Invantive.Sql.V1.SelectListIterator.JX.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.SP.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.LP.MoveNext()
   at System.Linq.Enumerable.<TakeIterator>d__25`1.MoveNext()
   at Invantive.Sql.V1.TopIterator.TX.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.SP.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.LP.MoveNext()
   at Invantive.Sql.V1.MaterializeSparseArrayIterator.<Iterator>d__1.MoveNext()
   at Invantive.Sql.V1.QueryPlan.XX.MoveNext()
   at Invantive.Data.ExtensionMethods.ELF`1.VGF.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.DO.A(QueryPlan )
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ActionProceduresBase.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters)
   at Invantive.Producer.Windows.Forms.QueryToolResults.JPF(GlobalState , ExecutionOptions , IProgressNotifier , String , ParameterList , Boolean , Boolean , Boolean , Boolean ) in C:\Users\gle3.WS212\Documents\ws-master\Invantive.Producer\src\Invantive.Producer.Windows.Forms\QueryTool\QueryToolAvailableObjectsViewModel.cs:line 55
   at Invantive.Producer.Windows.Forms.QueryToolResults.TPF(GlobalState , ExecutionOptions , String , ParameterList ) in C:\Users\gle3.WS212\Documents\ws-master\Invantive.Producer\src\Invantive.Producer.Windows.Forms\QueryTool\QueryToolAvailableObjectsViewModel.cs:line 30

Ook krijg ik nu een nieuwe error, zie onderstaand:

**** Waarschuwing itgendhb173: Context: select /*+ ods(true, interval '1 second') */ count(*) from AccountView..PROF_DST
Uitroep itgendci226: Missing provider.

Deze foutmelding krijg ik nu in datahub op alle tabellen, nu funtioneert het dus helemaal niet.

Foxpro database is al gereorganiseerd.

Je kunt de limiet van 100 aanpassen zoals staat in de tweede zin achter itgenfpr034:

Mocht je een keer niet weten welke connectorattributen beschikbar zijn, dan kun je dit terugvinden in het data dictionary met de query:

select *
from   systemproviderattributes@datadictionary

PS. De Data Replicator error itgendci226 komt waarschijnlijk door de fatale fout bij het openen van de AccountView administraties in SQL. Probeer nog eens na het verhogen van de limiet voor memo value fouten.

Oke, goede typ van systemproviderattributes@datadictionary, maar jouw antwoord beantwoord mijn vraag niet en reageert niet op mijn opmerking.

Kun je me helpen? Ik kom er niet uit wat je dan mist.

Ook krijg ik nu dus deze fout op alle query’s/tabellen

**** Waarschuwing itgendhb173: Context: select /*+ ods(true, interval '1 second') */ count(*) from AccountView..PROF_DST
Uitroep itgendci226: Missing provider.

Dit eerst was ook niet het geval.

De max-table-memo-value-errors kun je instellen in de ConnectionString op de AccountView connector binnen de database in settings*.xml. Hij wordt dan doorgegeven naar elke gebruikte FoxPro connector.

De itgendci226 error is verwacht ik vervolgschade van de voorgaande error over de memovelden. Ik verwacht dat hij verdwijnt als het uitlezen van AccountView niet meer klaagt over kapotte memovelden.

Het instellen van de max-table-memo-value-errors werkt nu in 20.1.277. dit lost ook het probleem op met deze query.

Deze foutmelding blijft in de beta versie wel terug komen bij elke tabel/query. Dit treed niet op in de 20.0.114 versie.

Waarschuwing itgendhb173: Context: select /*+ ods(true, interval '1 second') */ count(*) from AccountView..TRN_HDR Uitroep itgensql417: Missing data source provider.
Waardoor het in Query Tool wel ‘functioneert’ en in Data hub nog niet.

Kan ik nog iets in de instellingen veranderen om dit op te lossen?

De itgensql417 kun je oplossen door een alias te configureren op AccountView in settings*.xml. Een finetuning van het gedrag zit in de volgende BETA 20.1.278.

Ik gebruik momenteel de 20.1.278 beta en heb een alias genaamd ‘AV’ toegevoegd aan de .xml. Ik krijg nog steeds dezelfde foutmeldingen. Onderstaand in detail.

Het enige wat er is veranderd sinds de switch van 20.0.114 naar de beta is de toevoeging van ‘;max-table-memo-value-errors=1000;’. In 20.0.114 kregen we deze foutmeldingen niet.

2020-11-16 10:55:54.960 Information itgendhb044: Run SQL statement: select /*+ ods(true, interval '1 second') */ count(*) from AccountView..PROF_DST
2020-11-16 10:55:54.976 Warning itgendhb173: Context: select /*+ ods(true, interval '1 second') */ count(*) from AccountView..PROF_DST
2020-11-16 10:55:54.991 Error itgencun016: Uitroep itgensql417: Missing data source provider.
2020-11-16 10:55:54.991 Error itgensql417: Invantive.Basics.InvantiveSystemException
   at Invantive.Basics.ValidationException..ctor(GlobalState owner, ExecutionOptions executionOptions, String messageCode, String messageText, String kindRequest, String localStackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable)
   at Invantive.Basics.InvantiveSystemException..ctor(GlobalState owner, ExecutionOptions executionOptions, String validationCode, String errorMessage, String kindRequest, String stackTrace, String nk, Exception innerException, Boolean inheritMessageCodeWhenPresent, Nullable`1 uid, Boolean isRecoverable, String poolIdentityId)
   at Invantive.Sql.V1.OperationalDataStoreExecutionHint.Handle(GlobalState owner, ExecutionOptions executionOptions, IProviderManager manager, YieldedResultSet result, ExecutionHints executionHints, IDataProvider dataSourceProvider, ObjectDefinition objectDefinition, QueryObject queryObject, ParameterList parameters, Int32 maximumNumberOfParallelRequests, String refreshOrigin)
   at Invantive.Sql.V1.DataSourceOrFunctionTree.<GetData>d__54.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Sql.V1.ChainedFirehose.YH.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
   at Invantive.Sql.V1.GroupByIterator.LB.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Sql.V1.SelectListIterator.IB.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.MaterializeSparseArrayIterator.<Iterator>d__1.MoveNext()
   at Invantive.Sql.V1.QueryPlan.GB.MoveNext()
   at Invantive.Data.ExtensionMethods.UHC`1.RHC.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.BQ.J(QueryPlan )
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ActionProceduresBase.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters)
   at IDH.Z.ProcessStatement(GlobalState owner, ExecutionOptions executionOptions, String statement, ResultSet& resultSet, Action`2 fetchMoreRows, Action`9 executeStatement, Boolean isInInteractiveMode, ScriptingLanguageNextStepSpecification& nextStepSpecification)
   at IDH.Z.ProcessStatements(GlobalState owner, ExecutionOptions executionOptions, Action`2 fetchMoreRows, Action`9 executeStatement, IEnumerable`1 statements, String sourceFileName, ScriptingLanguageNextStepSpecification& exitSpecification)
   at IDH.Z.AL(String[] )
   at Invantive.Producer.QueryEngine.Program.Main(String[] arguments)
   at Invantive.Sql.V1.OperationalDataStoreExecutionHint.Handle(GlobalState owner, ExecutionOptions executionOptions, IProviderManager manager, YieldedResultSet result, ExecutionHints executionHints, IDataProvider dataSourceProvider, ObjectDefinition objectDefinition, QueryObject queryObject, ParameterList parameters, Int32 maximumNumberOfParallelRequests, String refreshOrigin)
   at Invantive.Sql.V1.DataSourceOrFunctionTree.<GetData>d__54.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Sql.V1.ChainedFirehose.YH.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source)
   at Invantive.Sql.V1.GroupByIterator.LB.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Sql.V1.SelectListIterator.IB.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.CI.MoveNext()
   at Invantive.Data.CompressedEnumerable`1.<GetEnumerator>d__8.MoveNext()
   at Invantive.Sql.V1.FirehoseResultSet.UI.MoveNext()
   at Invantive.Sql.V1.MaterializeSparseArrayIterator.<Iterator>d__1.MoveNext()
   at Invantive.Sql.V1.QueryPlan.GB.MoveNext()
   at Invantive.Data.ExtensionMethods.UHC`1.RHC.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.BQ.J(QueryPlan )
   at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Invantive.Data.ConnectionManager.ExecuteAndCombineQueryPlansV1(GlobalState owner, ExecutionOptions executionOptions, QueryPlan[] queryPlans, String sqlStatement, ParameterList parameters)
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Invantive.Data.ConnectionManager.ExecuteProviderPassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Invantive.Data.ConnectionManager.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters, String callSafeNameOverrule)
   at Invantive.Data.ActionProceduresBase.PassthroughSqlActionTable(GlobalState owner, ExecutionOptions executionOptions, String actionSql, ParameterList parameters)
   at IDH.Z.ProcessStatement(GlobalState owner, ExecutionOptions executionOptions, String statement, ResultSet& resultSet, Action`2 fetchMoreRows, Action`9 executeStatement, Boolean isInInteractiveMode, ScriptingLanguageNextStepSpecification& nextStepSpecification)