De foutcode itgenexl150
geeft aan dat de XML API-server van Exact Online van mening is dat er te vaak verzoeken worden ingediend. Die retourneert dan een HTTP 429-foutmelding (Too Many Requests). Deze heeft geen relatie met een HTTP 429-foutmelding vanuit Invantive Bridge Online bij overschrijden van de Fair Use-limieten, maar heeft wel dezelfde achtergrond.
Frequentie van Optreden
Een analyse is gemaakt onder welke omstandigheden dit probleem optreedt in een periode van 1 week.
De foutmelding itgenexl150
treedt incidenteel bij verschillende Exact Online XML-tabellen op. Overwegend bij AROutstandingItemsPerFinancialPeriodUltimo
, maar niet uitsluitend.
De foutmelding treedt op in omgevingen met tientallen administraties, maar soms ook als er maar 1 administratie is.
Het probleem treedt uitsluitend op op de systemen in gebruik voor Power BI/Power Query. Bij on-premises gebruik treedt dit probleem niet op. Dit geeft indicatie dat mogelijkerwijs de mate van parallelisme van invloed is; Power BI start vrijwel altijd meerdere downloads vrijwel tegelijk.
Het treedt bij 1,2 promille van de downloads tegen de Exact Online XML-tabellen.
Een statistische analyse over de afgelopen 6 maanden laat zien dat foutmelding met een lage frequentie voorkomt sinds tenminste oktober 2023, maar dat de frequentie sinds maart 2024 ruim verdubbeld is. Het typische gedrag is voor zover bekend in de afgelopen 6 maanden niet veranderd.
Voorbeeld
Een voorbeeld van het optreden van deze melding is request ID 0HN2KUAU13PHQ:00000006
met de URL:
https://start.exactonline.nl/Docs/XMLDownload.aspx?Topic=gltransactions&Params_details=1&Params_documents=0&_Division_=999999&TSPaging=0x000000030AFF1067
Het betreft een enkele administratie.
Deze combinatie van client ID en administratie had nog 4955 API-calls beschikbaar van de 5000 qua daglimiet. De minuutlimiet is 60, waar de Invantive UniversalSQL-driver er 58 toestaat binnen 62,04 sec om te compenseren voor bekende meetfouten/interpretatie aan de kant van Exact Online.
De laatste 53 slots zijn gebruikt als volgt:
Tijdstip (UTC) |
05-04-2024 05:17:58.83588 |
05-04-2024 05:18:02.14707 |
05-04-2024 05:18:03.40619 |
05-04-2024 05:18:04.78181 |
05-04-2024 05:18:05.77760 |
05-04-2024 05:18:06.95295 |
05-04-2024 05:18:08.16727 |
05-04-2024 05:18:08.48175 |
05-04-2024 05:18:10.16193 |
05-04-2024 05:18:11.37713 |
05-04-2024 05:18:12.57779 |
05-04-2024 05:18:13.61694 |
05-04-2024 05:18:14.55591 |
05-04-2024 05:18:14.59277 |
05-04-2024 05:18:16.41393 |
05-04-2024 05:18:16.45600 |
05-04-2024 05:18:17.43661 |
05-04-2024 05:18:17.68714 |
05-04-2024 05:18:18.40207 |
05-04-2024 05:18:19.13884 |
05-04-2024 05:18:19.20344 |
05-04-2024 05:18:20.23448 |
05-04-2024 05:18:20.51242 |
05-04-2024 05:18:21.49418 |
05-04-2024 05:18:21.74540 |
05-04-2024 05:18:22.28498 |
05-04-2024 05:18:23.07208 |
05-04-2024 05:18:23.53941 |
05-04-2024 05:18:23.94819 |
05-04-2024 05:18:24.72812 |
05-04-2024 05:18:24.99374 |
05-04-2024 05:18:25.72194 |
05-04-2024 05:18:25.90989 |
05-04-2024 05:18:27.21128 |
05-04-2024 05:18:27.22283 |
05-04-2024 05:18:28.22145 |
05-04-2024 05:18:28.28157 |
05-04-2024 05:18:28.34485 |
05-04-2024 05:18:28.35374 |
05-04-2024 05:18:28.39959 |
05-04-2024 05:18:28.41146 |
05-04-2024 05:18:28.45701 |
05-04-2024 05:18:28.46904 |
05-04-2024 05:18:28.51747 |
05-04-2024 05:18:28.54599 |
05-04-2024 05:18:28.57517 |
05-04-2024 05:18:28.60446 |
05-04-2024 05:18:28.63101 |
05-04-2024 05:18:28.66148 |
05-04-2024 05:18:28.69545 |
05-04-2024 05:18:28.72079 |
05-04-2024 05:18:28.75178 |
05-04-2024 05:18:28.77842 |
De foutmelding treedt de eerste keer op om 05:18:28.2654724.
Daarna wordt nog negenmaal geprobeerd de data op te halen om:
- 05:18:28.2656389
- 05:18:28.3247163
- 05:18:28.3864044
- 05:18:28.4439693
- 05:18:28.5045686
- 05:18:28.5612061
- 05:18:28.6183589
- 05:18:28.6808316
- 05:18:28.7384143
Het optreden van een HTTP 429 TooManyRequests is nooit volledig te vermijden; hetzij door beperkingen aan de Exact Online-zijde, hetzij doordat een gebruiker per abuis dezelfde combinatie van client ID en administratie op meerdere plekken onafhankelijk van elkaar gebruikt.
Het herhalingsmechanisme bij het lezen van data lijkt geinitieerd te worden, maar de herhalingsfrequentie is te hoog (gesignaleerd door itgeneor479
). Een nieuwe poging wordt elke 50 ms gestart. Normaliter zou deze moeten beginnen met een korte pauze, waarna bij iedere poging de vertraging tussen twee pogingen groter wordt zodat ook parallel werkende onafhankelijke systemen elkaar “het licht gunnen”.
Aanpassing
De analyse geeft - in combinatie met eerdere signalen - aan dat er mogelijk op enig moment aanpassingen zijn gedaan aan de Exact Online API-server en/of de netwerkinfrastructuur waarin deze zich bevindt. Echter, de Invantive UniversalSQL-driver moet hiermee coulant omgaan. Het binnen een tijdsbestek van enkele seconden tienmaal proberen biedt geen oplossing en wordt beschouwd als een bug.
Een developer zal de achterliggende oorzaak van het hoogfrequent proberen uitzoeken en corrigeren naar het gewenste gedrag.