User Tools

Site Tools


fmk:generel:retransmission

Retransmission

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.

  • Hvis det oprindelige request blev modtaget og behandlet, vil FMK gensende det oprindelig respons, som ikke var blevet modtaget i første omgang.
  • Hvis FMK ikke har modtaget og behandlet requestet, bliver det behandlet, og FMK returnerer svaret.

Retransmission og fejlhåndtering

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

Fortsatte fejl

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.

fmk/generel/retransmission.txt · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki