FMK benytter sig af Retransmission som defineret i DGWS: https://svn.medcom.dk/svn/releases/Standarder/DGWS/Dokumentation/Den%20Gode%20Webservice_1.0.pdf
Herved menes der, at alle requests som sendes til FMK fra et vilkårligt system, skal anvende et unikt MessageID/RequestId som ikke må genbruges med mindre der er tale om en retransmission.
Retransmission sikrer, at hvis kommunikationen bliver afbrudt under afsendelse/modtagelse af et response fra FMK, og kalderen derfor ikke ved om FMK har modtaget og behandlet forespørgslen, at man uden risiko for handlingen udføres dobbelt, kan gensendelse sammen kombination af MessageID + Request.
Bemærk: I følge fejlhåndtering er modtagelsen af en hvilken som helst fejl-meddelelse fra FMK (Inklusiv Applikationsfejl) også betegnet som en valid response. Får man en response indeholdende en fejl 3000 (Intern Server Fejl) fra FMK, så vil man gennem retransmission af MessageID + Request få samme response (fejl 3000) tilbage, da FMK har sorteret requesten fra som en dublet og derefter returnerer samme svar som blev sendt første gang requesten med dette MessageID blev sendt.
Får man en HTTP 503 fejl (Service Unavailable) eller anden HTTP fejlkode uden at der svaret indeholder fejlkode 1000-3999, er der med stor sansynlighed tale om en transient fejl, Man bør derfor forsøge at sende sit request igen. Der er i dette tilfælde ikke behov for at ændre MessageID ved gensendelse af requesten (Bemærk Genbrug af MessageId, uden for retransmission, bør kun gøres ved HTTP 503 fejl).
Får man en applikations-fejl (Fejlkode 1000-3999 + HTTP 500 fejl) fra FMK som sit response, skal man overveje om der er grundlag for at man skal forsøge at sende sit request igen (med et ny MessageID!), da der kan være tale om en transient fejl. Dog er det ikke alle applikations-fejl som nødvendigvis er transiente, og man skal derfor nøje overveje hvilke requests man vil forsøge at forsøge igen.
Som en vejlede liste vil der ved modtagelse af et respose med følgende fejlkoder muligvis være tale om transiente fejl som kan løses ved at sende samme request igen med et nyt MessageID:
| Fejl-kode | Kode tekst | Fejl betydning |
|---|---|---|
| 2001 | Fejl under fremsendelse af forespørgsel til recept service: {0} ({1}) | Generisk håndteret fejl fra recept-modulet, kan fx betyde midlertidige drifts-problemer, eller at 2 samtidige kald har blokeret for hinanden |
| 3000 | Intern Server Fejl | Der er opstået en ukendt/uventet fejl i FMK, kan fx betyde midlertidige drift-problemer |
| 3001 | Samtidig retransmission af besked med msgId {0} | Retransmission er blevet forsøgt inden første request er blevet færdigbehandlet |
| 3003 | Samtidig opdatering af medicinkortet {0}:{1} fejlede | Medicinkort er forsøgt opdateret mens et andet opdaterende kald endnu ikke er færdigbehandlet |
| 3004 | Samtidig opdatering af POR relation for patient {0}:{1} fejlede | POR oplysninger er forsøgt opdateret mens et andet opdaterende kald endnu ikke er færdigbehandlet |
| 3200 | Ukendt Idws Soap fejl | Der er opstået en ukendt/uventet fejl i håndteringen af Idws+Soap |
| 3700 | Der er opstået en uventet fejl i FMK ReceptModulet | Der er opstået en ukendt/uventet fejl i Recept-Modulet |
De følgende fejlkoder er der meget lidt chance for er transiente fejl, og der bør ikke forsøges at sende requesten igen uden grundig overvejelse:
| Fejl-kode | Kode tekst | Fejl betydning |
|---|---|---|
| 1007 | For få søgeparametre | Der er ikke angivet tilstrækkelige søge-parametre i forespørgslen |
| 3002 | Requestet genbruger msgId {0} som allerede er brugt i et ikke identisk request | Samme messageID er blevet brug til et request som ikke er ens med det første som brugte det samme ID |
| 3100 | Metoden {0} er endnu ikke implementeret | Metoden er endnu ikke implementeret og bør ikke anvendes |
| 3101 | Servicen {0} er ikke understøttet | Servicen er endnu ikke fuldt understøttet og bør ikke anvendes |
Hvis samme fejlkode vedgår, selv efter at have flere forsøg på at genkører samme request (Ny MessageID), kan der være tale om længerevarende driftsproblemer, eller at fejlen rent faktisk ikke er transient. I disse tilfælde kan der fortsat forsøges, dog gerne med delay mellem udsendelser, i tilfælde at det faktisk er driftsproblemer som sidenhen løses. Det er dog også oplagt at FMK's support kontaktes med henblik på at få undersøgt situationen.