Foutmelding 'System.OutOfMemoryException' bij laden gegevens van ExactOnline

Bij het laden van data uit ExactOnline met de Invantive Data Hub wordt er op steeds een ander punt in het proces de foutmelding ‘System.OutOfMemoryException’ gegenereerd. Hieronder een stukje uit de logging.

2021-08-26 10:15:20.757 Warning itgendhb173: Context: C:\jobs\sql\xxmoni-load-exact-online.sql: alter persistent cache force refresh;
2021-08-26 10:15:20.898 Error itgencun016: Fout itgenclr083: Meerdere fouten in Invantive Data Hub.

One or more errors occurred.
The remote server returned an error: (401) Unauthorized.
Answer was returned by a different URL as requested. Request to ‘https://start.exactonline.nl/api/v1/1221788/salesinvoice/SalesInvoices?$select=*&$skiptoken=guid’488448e6-27e3-445d-b468-d138ca05233f’’ gave response from ‘Exact Online’.
Exception of type ‘System.OutOfMemoryException’ was thrown.
Answer was returned by a different URL as requested. Request to ‘https://start.exactonline.nl/api/v1/762875/financial/GLAccountClassificationMappings?$select=*&$skiptoken=guid’eaae119b-b272-4bee-8002-6d023f1dcdaf’’ gave response from ‘Exact Online’.
Request timeout. Please consider reducing the scope of your request or retry to send the message.

The remote server returned an error: (408) Request Timeout.
Can’t convert field ‘Modifier’ with value ‘08141b34-2ae3-4e14-8bee-32429bed8399’ to type ‘System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]’ due to Exception of type ‘System.OutOfMemoryException’ was thrown…

Exception of type ‘System.OutOfMemoryException’ was thrown.
Exception of type ‘System.OutOfMemoryException’ was thrown.
Answer was returned by a different URL as requested. Request to ‘https://start.exactonline.nl/api/v1/2617383/financial/GLAccountClassificationMappings?$select=*&$skiptoken=guid’1bc262ff-13a7-4a2b-b93c-16d46e603498’’ gave response from ‘Exact Online’.
Exception of type ‘System.OutOfMemoryException’ was thrown.
Object reference not set to an instance of an object.
Exception of type ‘System.OutOfMemoryException’ was thrown.
Answer was returned by a different URL as requested. Request to ‘https://start.exactonline.nl/api/v1/2606977/financial/GLAccountClassificationMappings?$select=*&$skiptoken=guid’347d1397-4a94-446d-858f-b1cb7b7a1a8d’’ gave response from ‘Exact Online’.
Exception of type ‘System.OutOfMemoryException’ was thrown.
https://start.exactonline.nl/Docs/XMLDownload.aspx?Topic=balances&Params_prevyears=2&Params_afterentry=1&Params_showperiods=1&_Division_=1221788
2021-08-26 10:15:22.914 Error itgenclr083: System.Net.WebException

Een paar verdiepingsvragen:

  • Welke versie van Data Hub is dit?
  • Het proces draait als 64-bit proces op een 64-bit operating system?
  • Als er sprake is van Data Hub met Data Replicator: staat de optie om data te cachen op disk uit (nodig voor grote administraties van boven de 2 GB per tabel)? Zie Error itgendhb212: External error in Invantive Data Hub. (out of memory)
  • Treedt deze melding sinds kort op of al langere tijd?
  • Op welk moment van de dag treedt deze melding op?
  • Hoeveel administraties worden verwerkt?

Wat raar is dat er ook sprake is van HTTP 408 error (nieuw probleem op Exact Online API’s, zie Itgenoda055: HTTP 408 Request Timeout errors op Exact Online) en dat een herschreven URL wordt gedetecteerd. Vooral die laatste mag eigenlijk nooit optreden.

Merk ook op dat er een rare GUID in Exact Online zelf lijkt te zijn:

Can’t convert field ‘Modifier’ with value ‘08141b34-2ae3-4e14-8bee-32429bed8399’ to type ‘System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]’

Tenslotte is het sterk aan te bevelen om niet meer de SalesInvoiceLines tabel te gebruiken, maar over te stappen op de *Incremental-tabellen zoals beschreven op Snel en met minder API-calls Exact Online uitlezen met de incrementele "sync API"-tabellen.

Deze vraag is automatisch gesloten na 2 weken inactiviteit. Het laatste gegeven antwoord is gemarkeerd als oplossing.

Gelieve een nieuwe vraag te stellen via een apart topic als het probleem opnieuw optreedt. Gelieve in de nieuwe vraag een link naar dit topic op te nemen door de URL er van in de tekst te plakken.