Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: SDS-6530 Fjern konfiguration af automatisk genindlæsning - erstattet af baggrundsjob

...

For at DCC'en kan skelne mellem de forskellige operationer for en service foregår routing og valg af default afkoblingsmodel på baggrund af HTTP headeren 'SOAPAction' i kaldet, som , og evt. 'ServiceIdentifier'-parameteren angivet i url'en. Bemærk at SOAPAction altid skal angives i kaldet for HTTP bundne SOAP web-services \[SOAP\].

...

  1. Identificér endpoint URL'en for servicen
  2. Find servicens WSDL
  3. Find ud af hvorvidt servicen skal kaldes gennem SOSI-Gateway
  4. Notér 'soapAction' attributten for hver operation i servicens WSDL – bemærk at 'soapAction' attributten er mandatory for HTTP-bundne webservices jf. WSDL specifikationen \[WSDL\]

  5. Identificér en fælles prefix for alle de noterede 'soapActions'
  6. Definér en timeoutgrænse for hver operation
  7. Tilføj nu et <Endpoint> tag til DCC'en konfigurationsfil med følgende attributter:
    1. 'ActionPrefix' sættes til den identificerede fælles prefix
    2. 'URL' sættes til URL'en for servicen
    3. 'ProxyURL' (optionel) sættes til URL'en for SOSI-Gateways 'proxy' snitflade såfremt servicen skal tilgås gennem denne
    4. 'IdcardMaxAgeMinutes' (optionel) – se afsnittet 'IdcardMaxAgeMinutes instruktionen' længere nede
    5. 'DoNotVerifySSLHostname' (optionel) – se afsnittet 'SSL/TLS håndtering' længere nede
    6. 'WSA_Headers_Processing' (optionel) – se afsnittet 'WS-Addressing processering' længere nede
  8. Tilføj nu et <Action> tag under <Endpoint> tagget for hver af de identificerede 'soapActions' og sæt 'Name' attributten på <Action> tagget til 'soapActions' navn - uden den identificerede fælles prefix. Hvis operationen skal udstilles under en bestemt ServiceIdentifier, angives dette med en 'ServiceIdentifier'-attribut. Under hver <Action> tag tilføjes derefter et <Timeout> tag med det definerede timeout for operationen som angives i millisekunder.
  9. SOSI-DCC genstartes for at få konfigurationsændringen til at slå i gennem

...

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.dkma.dk/medicinecard/xml.schema/"URL="http://triforkprodtest.lms.trifork.com/fmk12/ws/MedicineCard"ProxyURL="http://localhost:8080/sosigw/proxy/soap-request"IdcardMaxAgeMinutes="560">
  <Action Name="2009/01/01#GetMedicineCard">
    <Timeout>30000</Timeout>
  </Action>
  <!-- flere actions -->
  <Action Name="2011/01/01#CreatePrescriptionMedicationWithoutCPR" ServiceIdentifier="fmk-1">
    <Timeout>30000</Timeout>
  </Action>
</Endpoint>

Konfigurationen kan genindlæses ved kald til ReloadConfiguration baggrundsjobbet, således at konfigurationen kan opdateres uden genstart af komponenten. Se driftsvejledning.

Anchor
_Toc325203597
_
Anchor
_Toc325203597_Toc325203597
Databasebaseret routingskonfiguration

I den databasebaserede routingskonfiguration genindlæser læser DCC'en routings konfiguration fra en database med jævne mellemrum. Konfigurationen kan genindlæses ved kald til ReloadConfiguration baggrundsjobbet, således at konfigurationen kan opdateres uden genstart af komponenten - se driftsvejledning. DCC'en forholder sig ikke til hvordan data i database vedligeholdes og kræver udelukkende læseadgang til databasen. 
For at anvende den databasebaserede routingskonfiguration skal følgende skridt gennemføres for en given installation:

...

2. 

Anchor
_Ref260054066
_Ref260054066
Definér to 'select' statements:

a. Et 'LastUpdateSelectStatement' som returnerer én og kun én række med én og kun én værdi af typen 'Datetime' eller null. Værdien skal afspejle hvornår routingsinformation sidst er blevet opdateret. DCC genindlæser hele konfigurationen hvis denne værdi er større end den komponenten sidst har læst (komponenten benytter 1/1/1970 som initiel dato).

b. Et 'ActionSelectStatement' som returner et antal rækker som indeholder følgende navngivne værdier med følgende egenskaber:

statement,'ActionSelectStatement', som returner et antal rækker som indeholder følgende navngivne værdier med følgende egenskaber:

Navn

Datatype

Nullable

Betydning

SOAP_ACTION

String

Nej

Den action der ønskes kaldt.

SERVICE_IDENTIFIER

String

Ja

Logisk navn på den service der ønskes kaldt. Parret <SOAP_ACTION, SERVICE_IDENTIFIER> skal være unikt. Bemærk at SERVICE_IDENTIFIER kan være NULL af hensyn til bagudkompatibilitet.

Navn

Datatype

Nullable

Betydning

SOAP_ACTION

String

Nej

Routingsnøglen - skal være unik

SERVICE_URL

String

Nej

Endpointet hvortil beskeder for den givne soap action skal routes til

TIMEOUT_MILLIS

int

Nej

Grænseværdien for hvornår det (synkrone) kald afbrydes

USE_PROXY

boolean

Ja

Hvorvidt beskeder skal sendes gennem proxy hvis en sådan er defineret i DCC'ens statiske konfiguration

IDCARD_MAXAGE_MINS

int

Ja

Instruktion til en evt. SOSI-Gateway.
Benyttes kun hvis USE_PROXY er 'true' og en proxy er defineret i DCC'ens statiske konfiguration.

Se også nedenstående afsnit 'IdcardMaxAgeMinutes instruktionen'.

DO_NOT_VERIFY_SSL_HOSTNAME

boolean

Ja

Hvorvidt hostname verifikation af SSL-servercertifikatet skal foretages.
Parameteren benyttes kun hvis SERVICE_URL (eller en proxy hvis USE_PROXY er sat) er en HTTPS URL.

Default værdien er 'false'.

Se også nedenstående afsnit 'SSL/TLS håndtering'

WSA_HEADERS_PROCESSING

String

Ja

Hvordan WS-Addressing headere skal processeres, se afsnittet 'WS-Addressing processering' længere nede for tilladte værdier.

Default værdien er 'WSA_OVERWRITE'


3. 

Anchor
_Ref260054115Ref260054172
_Ref260054115
Fastlæg hvor tit DCC'en skal genindlæse konfigurationen fra databasen, målt i minutter.
Ref260054172
Identificér URL'en for en eventuel 4.  Anchor_Ref260054172_Ref260054172Identificér URL'en for en eventuel (SOSI-GW) proxy på den pågældende installation.

54. Opdatér DCC'ens konfigurationsfil ved at slette alle <Endpoint> definitioner og indsætte følgende <EndpointDatabase> struktur i stedet:

Code Block
<EndpointDatabase>
   <DataSourceName>DATASOURCE</DataSourceName>
   <LastUpdateSelectStatement>LAST_UPDATE_SELECT</LastUpdateSelectStatement>
   <ActionsSelectStatement>ACTION_SELECT</ActionsSelectStatement>
   <RefreshIntervalMinutes>INTERVAL</RefreshIntervalMinutes>
   <GatewayProxyURL>PROXY_URL</GatewayProxyURL>
</EndpointDatabase>

...

  • DATASOURCE er navnet på datasourcen deployet under
    Anchor
    _Hlt260053990
    _Hlt260053990
    1) præfikset med java:/
  • LAST_UPDATE_SELECT og ACTION_SELECT er de det i 2) definerede statements
  • INTERVAL er det i 3) fastlagte interval
  • statement
  • PROXYPROXY_URL er den i 43) eventuel identificerede proxy eller tomt hvis der ikke benyttes nogen proxy

...


Bemærk: DCC'en fejler under opstart hvis et af de to det angivne 'select' statements statement kaster en exception, men starter korrekt selvom de to 'select' statements statement måtte returnere tomme result-sets.
Når der foreligger en opdateret konfiguration i databasen erstatter denne den tidligere indlæste konfiguration uden at DCC'en forholder sig til forskellene mellem de to konfigurationer. Hvis der er fejl i den nye konfiguration logges dette og den tidligere korrekt indlæste bibeholdes.
Ikke-normativ eksempel på en endpoint-database definition: 
Ikke-normativ eksempel på en endpoint-database definition:

Code Block
<?xml version
Code Block
<?xml version="1.0" encoding="UTF-8"?>
<EndpointDatabase>
  <DataSourceName>java:/crkDS</DataSourceName>
  <LastUpdateSelectStatement>select<ActionsSelectStatement>select LASTSOAP_UPDATE from DCC_LASTUPDATE</LastUpdateSelectStatement>
  <ActionsSelectStatement>select SOAP_ACTION, SERVICE_ACTION, SERVICE_URL, TIMEOUT_MILLIS, IDCARD_MAXAGE_MINS, USE_PROXY, DO_NOT_VERIFY_SSL_HOSTNAME, WSA_HEADERS_PROCESSING from DCC_ACTIONS</ActionsSelectStatement>
  <RefreshIntervalMinutes>60</RefreshIntervalMinutes>
  <GatewayProxyURL>http://127.0.0.2:8080/sosigw/proxy/soap-request</GatewayProxyURL>
</EndpointDatabase>

...

_PROCESSING from DCC_ACTIONS</ActionsSelectStatement>
  <GatewayProxyURL>http://127.0.0.2:8080/sosigw/proxy/soap-request</GatewayProxyURL>
</EndpointDatabase>

Anchor
_Toc325203598
_Toc325203598
Generel routingsfunktionalitet

Vigtigt: Bemærk at der kun kan kaldes operationer som er blevet konfigureret, dette betyder, at når en serviceudbyder tilføjer operationer til en eksisterende service skal disse ligeledes tilføjes til DCC'ens konfiguration før de kan kaldes gennem DCC'en. I øvrigt anbefales der, at der i takt med at en serviceudbyder fjerner operationer fra en service at disse ligeledes fjernes fra DCC'ens konfiguration.


Bevarelse af URL suffiks
Det er muligt at konfigurere såvel URL som ProxyURL attributterne til at bevare URL suffikset i kaldet, dvs. alt i klienternes kald efter http://HOST:PORT/decoupling tilføjes til hhv. URL og/eller ProxyURL. Bevarelse af URL suffiks konfigureres ved at lade URL/ProxyURL attributten ende på '/*'.
Med f.eks. nedenstående konfiguration vil kald til http://HOST:PORT/decoupling/foo blive viderestillet til http://foobar.com/example/foo (for kald med SOAPAction 'http://www.example.org#doIt'):

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.example.org#" URL="http://foobar.com/example/*">
  <Action Name="doIt">
    <Timeout>10000</Timeout>
  </Action>
</Endpoint>


Bemærk at det stadig er muligt at bevare URL suffiks, når der angives en ServiceIdentifier. 

Vigtigt: Bemærk at der kun kan kaldes operationer som er blevet konfigureret, dette betyder, at når en serviceudbyder tilføjer operationer til en eksisterende service skal disse ligeledes tilføjes til DCC'ens konfiguration før de kan kaldes gennem DCC'en. I øvrigt anbefales der, at der i takt med at en serviceudbyder fjerner operationer fra en service at disse ligeledes fjernes fra DCC'ens konfiguration.

Bevarelse af URL suffiks
Det er muligt at konfigurere såvel URL som ProxyURL attributterne til at bevare URL suffikset i kaldet, dvs. alt i klienternes kald efter http://HOST:PORT/decoupling tilføjes til hhv. URL og/eller ProxyURL. Bevarelse af URL suffiks konfigureres ved at lade URL/ProxyURL attributten ende på '/*'.

Med f.eks. nedenstående konfiguration vil kald til http://HOST:PORT/decoupling/service/bar/foo blive viderestillet til http://foobar.com/example/foo (for kald med SOAPAction 'http://www.example.org#doIt'):

Code Block
<?xml version="1.0" encoding="UTF-8"?>
<Endpoint ActionPrefix="http://www.example.org#" URL="http://foobar.com/example/*">
  <Action Name="doIt" ServiceIdentifier="bar">
    <Timeout>10000</Timeout>
  </Action>
</Endpoint>

...