En tidsavbrutt forespørsel kan allerede være behandlet
Undersøk om skriveoperasjonen allerede er gjennomført før en tidsavbrutt forespørsel sendes på nytt.
Et tidsavbrudd betyr at klienten ikke fikk et svar innen fristen. Det sier ikke nødvendigvis at serveren avbrøt behandlingen. Manglende kvittering kan skjule en vellykket registrering. Dette er særlig viktig når forespørselen oppretter økonomiske dokumenter.
Syntetisk hendelsesforløp
En oppdiktet forespørsel skal registrere dokument D4 på 7 200 kroner.
| Tid | Hendelse | Hva klienten vet |
|---|---|---|
| 12.00.00 | Forespørselen sendes | Grunnlag og lokal nøkkel er lagret |
| 12.00.03 | Serveren registrerer D4 | Klienten har ennå ingen bekreftelse |
| 12.00.05 | Klientens tidsfrist nås | Resultatet er ukjent |
| 12.00.06 | Ukontrollert nytt forsøk | Risiko for et nytt dokument |
To registreringer kan gi 14 400 kroner i stedet for 7 200. En kortere tidsfrist vil ikke løse problemet; den kan gjøre ukjent resultat vanligere.
Lag en egen status for ukjent resultat
Ikke merk hendelsen «feilet» hvis den kan være gjennomført. Bruk en synlig uavklart status og bevar kildeidentitet, lokal leveransenøkkel og forespørselens innholdskontroll. Det gir grunnlag for oppslag eller kontakt med leverandøren uten å sende dokumentet blindt på nytt.
Avklar før oppstart hvilken mekanisme som kan finne resultatet: dokumentert idempotensnøkkel, ekstern referanse, operasjonsstatus eller entydig mottakeroppslag. Søk på beløp og dato alene kan treffe et annet ekte dokument.
HTTP-spesifikasjonen beskriver vilkår for gjentakelse. En applikasjonsoperasjon som oppretter bilag må vurderes ut fra sin dokumenterte kontrakt. Det er ikke tilstrekkelig å kalle forespørselen «retry» i klientkoden.
Prøv de vanskelige grensene
- Bryt forbindelsen før serveren mottar forespørselen.
- Bryt etter registrering, men før svar leveres.
- La statusoppslag også feile midlertidig.
- Prøv to samtidige gjenforsøk med samme hendelsesidentitet.
- Kontroller at avstemmingen viser én registrering eller en synlig uavklart post.
Godkjenn automatisk retry bare når prøven viser at den økonomiske virkningen ikke dobles. Hvis resultatet ikke kan avklares automatisk, bør hendelsen gå til kontrollert manuell undersøkelse.
Denne kontrollen er relevant når et system som ReAI vurderes som mottaker for en skriveintegrasjon. Den konkrete støtteformen må bekreftes for operasjonen; veiledningen lover ingen generell status- eller idempotensmekanisme.
Et senere svar kan komme etter at klienten har gitt opp. Avtal hvordan en slik sen bekreftelse kobles til den uavklarte hendelsen. Den skal ikke opprette et nytt lokalt resultat eller bli ignorert fordi et gjenforsøk allerede er planlagt.
Se idempotens og feilkø.