Itgenoda219 melding bij ophalen gegevens uit Loket.nl API's na 1 uur

Bij het gebruik van on-premise producten van Invantive SQL voor de Loket.nl API’s treedt na 60 minuten een error op:

itgenoda219: Uw sessie is verlopen.

Authorization has been denied for this request.

The remote server returned an error: (401) Unauthorized.
Meld je opnieuw aan.

De logging toont:

2021-03-30 11:38:04.808 Information itgencun014: Invantive Data Hub (20.1.388-BETA+1632)
2021-03-30 11:38:04.808 Information itgencun015: (C) Copyright 2004-2018 Invantive Software BV, the Netherlands. All rights reserved.
2021-03-30 11:38:04.893 Information itgendhb204: Verbonden! Verbinden duurde 2,487 ms.
2021-03-30 11:38:05.259 Information itgendhb044: Run SQL statement: create or replace table Employers@inmemorystorage
as 
SELECT /*+ ods(false, interval '1 seconds') */ id relatie_employers,*
FROM   LoketNlRest.Employer.EmployersByUserId@lkt
2021-03-30 11:38:05.264 Information itgensql264: Invantive SQL statement gestart.
2021-03-30 11:38:16.469 Information itgengpr064: Terugzetten datacontainer metadata. (create table, EMPLOYERS, InMemoryStorage)
2021-03-30 11:38:16.476 Information itgendhb210: Procedurele code verwerkte 1 rijen. (11,217 ms).
...
2021-03-30 12:16:39.139 Information itgendhb044: Run SQL statement: create or replace table PayrollRuns@inmemorystorage
as 
SELECT /*+ ods(false, interval '1 seconds') */ Employments.relatie_employers, Employments.relatie_employers_employement, concat(Employments.relatie_employers_employement ," - ",PayrollRuns.id)relatie_employers_employement_payrolrun  ,PayrollRuns.*
FROM   Employments@inmemorystorage Employments
left 
outer 
join   LoketNlRest.PayrollRun.PayrollRunsByPayrollAdministrationId@lkt(payrollAdministrationId => Employments.payrollAdministration_id)PayrollRuns 
where  PayrollRuns.id not in(select /*+ ods(false) */ id from imy_payrollruns_t@mssql)
and    PayrollRuns.payrollRunStatus_key = 9
and    Employments.payrollAdministration_id is not null
and    PayrollRuns.payrollPeriod_year < 2017
2021-03-30 12:16:39.139 Information itgensql264: Invantive SQL statement gestart.
2021-03-30 12:38:04.163 Warning itgendhb173: Context: create or replace table PayrollRuns@inmemorystorage as  SELECT...ion_id is not null and    PayrollRuns.payrollPeriod_year < 2017
2021-03-30 12:38:04.212 Error itgencun016: Fout itgenoda219: Uw sessie is verlopen.

Authorization has been denied for this request.

The remote server returned an error: (401) Unauthorized.
Meld je opnieuw aan.
https://api.loket.nl/v2/providers/employers/payrolladministrations/GUIDVALUE/payrollruns?pageNumber=1&pageSize=1000
2021-03-30 12:38:06.223 Error itgenoda219: System.Net.WebException
ValidationException
OAuthException
   at System.Net.HttpWebRequest.GetResponse()
   at Invantive.Data.Providers.OData.ODataProvider.DoRequest(GlobalState owner, ExecutionOptions executionOptions, HttpWebRequest request, String url, ObjectDefinition objectDefinition, QueryObject queryObject, String partitionCode, String callSafeNameOverrule, String anonymizedPostText, Boolean allowRetryOnConnectionLoss, ParameterList parameters, Guid nativeCallUid, ExecutionStatistics& statistics, ODataErrorProcessingInstructions& oDataErrorProcessingInstructions)
2021-03-30 12:38:06.226 Information itgendhb223: Einde programma-uitvoering met exitcode 3.
2021-03-30 12:38:06.227 Information itgendhb068: Programma geëindigd op 3/30/2021 12:38:06 PM.

Hoe kunnen jobs verwerkt worden die langer dan een uur duren?

Onderliggende meldingen uit trace:

invantive-odata-token-last-set-utc	03/30/2021 09:41:29
invantive-odata-token-updates	3
level-2-invantive-odata-error-message	{"message":"Authorization has been denied for this request."}

Documentatie hierover is opgevraagd onder #197442.

Het access token op Loket blijkt een levensduur van 10 minuten te hebben. In de SQL driver voor Loket zullen we a la andere OAuth platformen proberen een refresh hiervan mogelijk te maken (ITGEN-5351).

Het omwisselen van het refresh token in een nieuw access token na 60 minuten werkt nu ook op Loket.nl (REST). Deze functionaliteit is beschikbaar vanaf release 20.1.417.