Innehållsförteckning |
---|
Mule flödena är implementerade mha Mule Studio och återges nedan som skärmdumpar från verktyget.
...
- Ingår i en separat xml-konfig-fil, TakCache-services.xml, för att kunna aktiveras vid behov
- Definierar också spring-bönan takCacheBean som används för att läsa information från TAK.
Konfiguration
Konfiguration av följande mekanismer är av central betydelse för att en aggregerande tjänst skall fungera bra i en produktionsmiljö med både hög last och där fel inträffar pga kommunikationsproblem och/eller långa svarstider.
Timeouter
För att den timeout-hanteringen skall fungera och den aggregerande tjänsten skall kunna ge så meningsfull felinformation som möjlig tillbaka till anropande tjänsteproducent vid timeout-relaterade fel så är det viktigt att:
AGGREGATED_SERVICE_TIMEOUT_MS > AGGREGATE_TIMEOUT_MS > SERVICE_TIMEOUT_MS
Exempel på konfiguration:
# Default timeout for synchronous services SERVICE_TIMEOUT_MS= 4000 AGGREGATE_TIMEOUT_MS= 4500 AGGREGATED_SERVICE_TIMEOUT_MS= 5000 |
Trådpool
För att en aggregerande tjänst skall kunna bibehålla låga svarstider vid uppskakad last är det av central betydelse att det finns tillräckligt med trådar konfigurerade för att kunna hantera alla parallella anrop. Samtidigt
Varje aggregerande tjänst kan konfigureras individuellt baserat på följande parametrar för en default tråd pool:
Kodblock | ||
---|---|---|
| ||
<default-threading-profile poolExhaustedAction="ABORT" maxThreadsActive="${AGP_DEFAULT_MAX_THREADS_ACTIVE}" maxThreadsIdle="${AGP_DEFAULT_MAX_THREADS_IDLE}" threadTTL="${AGP_DEFAULT_MAX_THREADS_TTL}"/> |
Exempel på konfiguration:
# Default thread pool configration AGP_DEFAULT_MAX_THREADS_ACTIVE=100 AGP_DEFAULT_MAX_THREADS_IDLE=1 AGP_DEFAULT_MAX_THREADS_TTL=10000 |
Tjänstespecifika implementationer
De tjänstespecifika implementationerna konfigerars enligt nedanstående exempel:
# POJO implementations of the agp-api QUERY_OBJECT_FACTORY_IMPL=se.skltp.aggregatingservices.riv.crm.requeststatus.getrequestactivities.QueryObjectFactoryImpl REQUEST_LIST_FACTORY_IMPL=se.skltp.aggregatingservices.riv.crm.requeststatus.getrequestactivities.RequestListFactoryImpl RESPONSE_LIST_FACTORY_IMPL=se.skltp.aggregatingservices.riv.crm.requeststatus.getrequestactivities.ResponseListFactoryImpl |