Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Denne service gør det muligt for webserviceaftagerne at hente og kvittere for modtagelsen af beskeder fra DFDG. Se også den tværgående beskrivelse om Modtagelse af WSRM beskeder

Forretningsbeskrivelse



Link til snitfladebeskrivelser


Link til forretningsbeskrivelser 

 

Found 0 search result(s) for WsrmDistributionService.

Metoder

CreateSequence

Ved kald af CreateSequence kan alle SOAP Body elementer sættes til NULL. Der er planlagt en oprydning så disse parametre fjernes fra servicen.

SubQueueIdentifier skal dog angives, hvis der skal kaldes en subkø.

Denne metode benyttes til at initiere en WSRM overførsel af meddelelser. Der returneres en beskrivelse af hvilke meddelelser, der er klar til afhentning (service inventory), der returneres højest 500 beskeder pr. afhentning. Et service inventory kunne f.eks. så således ud:

<CreateSequenceResponseType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Identifier xmlns="http://docs.oasis-open.org/ws-rx/wsrm/200602">ac6b4250-21cd-43a5-964b-5ecd5f70f1b6</Identifier>
  <ServiceInventoryCollection xmlns="http://docs.oasis-open.org/ws-rx/wsrm/200602">
    <ServiceItem>
      <ServiceName>GetUnemploymentEnrollmentVersion4</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>35</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetCancelUnemploymentEnrollmentVersion4</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>59</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetContactGroupVersion4</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>158</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetPersonProfessionCollectionVersion4</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>34</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetWarningVersion4</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>27</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetCVStatusVersion6</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>2</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetCVObservationVersion5</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>27</MessageCount>
    </ServiceItem>
    <ServiceItem>
      <ServiceName>GetContactGroupVersion5</ServiceName>
      <ServiceEndpoint>https://serviceT2.startest.dk/PjaktassWCFTservice/10/WsrmMessageService.svc</ServiceEndpoint>
      <MessageCount>158</MessageCount>
    </ServiceItem>
  </ServiceInventoryCollection>
</CreateSequenceResponseType>

Dette eksempel viser, at der er oprettet en sekvens med Identifier="ac6b4250-21cd-43a5-964b-5ecd5f70f1b6" og at der venter 8 forskellige meddelelsestyper med hhv. 35, 59, 158, osv. enkeltbeskeder for hver type. I strukturen returneres også URL til webservicen samt metodenavnet på den WSRM GetXXX operation der skal kaldes.

Serviceaftageren skal derefter kalde alle de nævnte services, i SOAP header for hver GetXXX operation skal Identifier for sekvensen angives i elementet SequenceRequest. Hver GetXXX metode returnerer en collection med det pågældende antal beskeder.

Når alle services er kaldt og meddelelserne er hentet korrekt skal aftager markere dette ved at lukke sekvensen (commit) via "TerminateSequence". Hvis aftageren ikke har hentet og accepteret alle meddelelser i sequencen, kan sequencen ikke termineres, og det er ikke muligt at oprette nye sekvenser.

Hvis aftager ikke mener at beskederne i sekvensen er afhentet korrekt kan afhentningen rulles tilbage via CloseSequence.

Ingen beskeder ved kald af CreateSequence

Hvis kaldet til CreateSequence returnerer en ServiceInventoryCollection med 0 ServiceItems, er der ikke nogen WSRM beskeder at hente for den kaldende aftager.

Sekvensen med Identifier som identifikation lukkes i denne situation automatisk af DFDG, og afhentning kan startes forfra med CreateSequence.

Fejl ved kald af CreateSequence

Hvis kaldet til CreateSequence fejler returneres en WSRM specifik fejlstruktur der udover de normale elementer i FaultDetails indeholder et ID af typen GUID. Ved fejl:

  • FaultCode: 4006 - Create WS-RM Sequence refused, open sequence exists

vil dette felt indeholde Identifier på den åbne sekvens. Afhentning kan herefter fortsættes eller sekvensen kan lukkes (anbefales) og afhentning startes forfra.

CloseSequence

Denne metode benyttes til at afbryde en pålidelig overførsel inden normal afslutning. Hele overførslen betragtes som annulleret, og serveren vil derfor ikke slette beskeder, som er blevet sendt i den pågældende overførsel, ligesom aftageren vil få disse sendt beskeder igen ved næste overførsel.

TerminateSequence

Denne metode benyttes til at afslutte en korrekt gennemført overførsel efter det er konstateret, at alle meddelelser i overførslen er modtaget korrekt.

Fejlhåndtering

I følgende vises en oversigt over de Soap Faults der kan komme fra WSRMservice eller de services der er en del af en WSRM sekvens.

FaultcodeFaultstringBeskrivelse
4001The WS-RM Sequence Status is set to TerminatedDen sekvens (Identifier) der refereres til er allerede afsluttet.
4002The WS-RM Sequence Status is set to FaultedDen sekvens (Identifier) der refereres til er gået i fejltilstand. Kald CloseSequence for at afslutte den.
4003The WS-RM Sequence Status is set to EndedAlle beskeder i sekvensen er allerede afhentet
4004The WS-RM Sequence Status is set to None
4006Create WS-RM Sequence refused, open sequence existsDer eksisterer en åbne sekvens, luk denne først. Se ID i fejlbeskeden.
4007The message has not been transmittedDer er forsøgt at kvittere for en GetXXX metode uden at GetXXX er forsøgt kaldt
4008Not all messages in the WS-RM Sequence was transmittedIkke alle GetXXX metoder angivet i sekvensen er blevet kaldt
4009The number of WS-RM Max-TransmitAttempts has been ex-ceededHver GetXXX metode må højst blive kaldt 3 gange. Eneste udvej er at kalde CloseSequence
4010This Service is not part for the selected Sequence InventoryDen kaldte GetXXX metode er ikke del af den angivne sekvens.
4011This Service requires the use of WS-RMEn GetXX metode kan ikke kaldes uden for en WSRM Sekvens, metoden kræver en udfyldt SequenceRequest SOAP header.
4013Unknown Client DestinationDen organisation/myndighed der er angivet har ikke tilknyttet en WSRM kø
9182The user is not authorized to read messages on this queueDet certifikat der er benyttet har ikke adgang til at hente på den pågældende kø
  • No labels