Bij het vernieuwen bij een grote administratie lopen we tegen de volgende fout aan en stopt de sync.
11:05:36.454 Error itgeneor364: Exact Online requires at least 9,5 minutes between each request for a new access token.
The remote server returned an error: (400) Bad Request.
Please try again after 04-08-2024 11:05:43 (UTC) after waiting for 7 seconds.
https://start.exactonline.be/api/oauth2/token
11:05:38.455 System.Net.WebException
ValidationException
at System.Net.HttpWebRequest.GetResponse()
at Invantive.Data.Providers.Http.HttpBasedProvider.DoRequest(GlobalState owner, ExecutionOptions executionOptions, HttpWebRequest request, String url, ObjectDefinition objectDefinition, QueryObject queryObject, String partitionCode, String callSafeNameOverrule, String anonymizedPostText, Boolean allowRetryOnNoConnectionMade, Boolean allowRetryOnConnectionLoss, ParameterList parameters, Guid nativeCallUid, Boolean throwExceptionOnNonSuccessfulStatusCode, Object requestBody, Int64 timeoutInitialMs, Int64 timeoutMaxOnRetryMs, String resultCacheId, String publicQueryParameters, SqlExecutionStep sqlExecutionStep, ExecutionStatistics& executionStatistics, ODataErrorProcessingInstructions& oDataErrorProcessingInstructions)
11:05:38.456 itgendhb223: End program execution with exit code 3.
11:05:38.456 itgendhb068: Program finished on 8/4/2024 11:05:38 AM.
itgenpgm001: Application finished
Failed Data Hub job with exit code 0.**vetgedrukte tekst**
Advies is om de verwerking nogmaals uit te voeren.
Mocht het probleem vaker optreden, controleer dan dat er niet gelijktijdig of kort na elkaar meerdere jobs lopen met dezelfde combinatie van client ID en Exact Online user ID.
Een analyse van het optreden van deze melding is gemaakt.
De aanbevolen wachttijd in de melding komt vanuit de Exact Online API-servers via de Reason-HTTP header. De achterliggende Exact Online foutmelding is:
{ "error":"access_denied","error_description":"Rate limit exceeded: access_token not expired" }
De melding met 7 seconden kon niet teruggevonden worden in het scherm Systeemberichten, maar de foutmelding komt over alle gebruikers heen circa tweemaal per maand voor.
De getoonde aanbevolen wachttijden zijn:
0 seconden: 7
1 seconden: 1
40 seconden: 1
45 seconden: 1
326 seconden: 1
Echter, vrijwel alle foutmeldingen treden op sinds begin juli 2024. In de maanden ervoor waren er meerdere maanden zonder deze melding.
Het lijkt er op dat aan de Exact Online-zijde aanpassingen gedaan zijn, aangezien Data Hub op talrijke machines draait in redelijk vaste versies.
Er zal onderzocht worden of er iets langer gewacht kan worden met het vernieuwen van het access token, aangezien vrijwel alle meldingen die terug te vinden zijn uitkomen op 0 of 1 seconden.
Workaround
Voorlopig is het advies om de synchronisatie met de tijdsservers te controleren via Windows Time of NTP. Corrigeer eventuele afwijkingen.
Mocht dat niet lukken, dan is advies om te controleren dat job herstartbaar is en deze herhaaldelijk uit te voeren.
Daarnaast kunt u proberen om via de connection string de waarde van api-pre-expiry-refresh-sec te verlagen van 30 naar 15 seconden. Dit zal naar verwachting geen nadelen hebben. Naar verwachtingen zal enkel in massief parallelle omgevingen hierdoor de doorvoersnelheid met enkele procenten vertraagd kunnen worden.
Vanaf release 24.0.291 zal de standaardinstelling van 30 seconden voor Exact Online gewijzigd zijn. Deze release zal ergens komende week beschikbaar komen. Tot dan is advies om dit via api-pre-expiry-refresh-sec te sturen.
We kunnen helaas geen ondersteuning leveren op de installatie. Zoals eerder aangegeven kan een eerdere release gebruikt worden, maar dan moet de instelling api-pre-expiry-refresh-sec ingesteld zijn via de connection string.
@forums ik zie dat u dat ARM versie voor linux heeft doorgestuurd, dit verklaard ons probleem. Kan u mij de link bezorgen voor X86 64-bit versie doorsturen?
Deze versie nu geïnstalleerd, maar krijgen nu de volgende fout:
root@invantive:~# ./replicate.sh
Unhandled exception. System.IO.FileNotFoundException: The configuration file 'appsettings.Production.json' was not found and is not optional. The expected physical path was '/root/appsettings.Production.json'.
at Microsoft.Extensions.Configuration.FileConfigurationProvider.HandleException(ExceptionDispatchInfo info)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)
at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load()
at Microsoft.Extensions.Configuration.ConfigurationRoot..ctor(IList`1 providers)
at Microsoft.Extensions.Configuration.ConfigurationBuilder.Build()
at Invantive.Basics.ConfigurationUtility.GetConfiguration(GlobalState owner, ExecutionOptions executionOptions, String[] args)
at Invantive.Producer.Data.Hub.Program.Main(String[] args) in c:\smoke\ws-24.0\Invantive.Data.Hub\src\Invantive.Producer.Data.Hub\Program.cs:line 47
Aborted
Failed Data Hub job with exit code 0.
Deze foutmelding ontstaat omdat de configuratie voor Elastic APM ontbreekt; het inrichten hiervan vereist enige ondersteuning.
Advies is om de originele versie te blijven gebruiken en de connection string aan te passen zoals in een eerdere reactie vermeld:
Er zal een release komen met een aanpassing voor bovenstaande foutmelding, maar in verband met de frozen period zal dat op zijn vroegst einde augustus 2024 zijn.
De instelling api-pre-expiry-refresh-sec kan toegevoegd worden aan de connection string. Op Data Hub komt deze uit het gebruikte settings*.xml-bestand. Zie: