Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Version

Dato

Ændring

Ansvarlig

2.0.0

2018-08-27

Initialt dokument

Trifork

2.0.82019-07-31Tilføjet information om ny overvågningssideTrifork
2.0.92019-25-09AjourførtTrifork
2.0.132020-02-13Beskrivelse af SyncJob ændretKvalitetsIT
2.0.142021-08-20Fjernet referencer til SyncJobKvalitetsIT

Funktionalitet

Servicen udstiller data som beskrevet i anvenderguiden. Komponenten kaldes alene af Dokumentdelingsservicen (DDS). Servicen udstiller derudover en række administrative og konfigurationsrelaterede funktionaliteter.

...

Servicen kræver ingen daglig vedligeholdelse udover sædvanlig systemovervågning.

Alt data for en borger fjernes 1 år efter borgerens død ved hjælp af et integreret job kaldet SyncJob. Dette job fjerner både data fra servicens primære database samt fra DDS registry.

Versionsinformation

Servicen udstiller en statusside med versionsinformation. Der returneres en body med JSON-data.
"$.build" indeholder oplysninger om versionen, og hvornår den blev bygget.
"$.time" indeholder oplysninger om det aktuelle tidspunkt, og tidspunktet for hvornår servicen blev deployed.

...

Navn (på property i JSON-response)Beskrivelse

$.details.organDonorClient
$.details.livingWillClient
$.details.treatmentWillClient
$.details.personalDataCardRegisterClient
$.details.scesClient
$.details.minLogClient

Tjekker om det seneste kald med den pågældende integration var succesfuldt. Hvis det ikke var succesfuldt, så viser "error" en toString() på den exception der opstod. Der vises eventuelt "timeOfLastExecution", som angiver det seneste tidspunkt, hvor et kald blev forsøgt (uanset om det var successfuldt eller ikke-successfuldt).

UP: OK
UNKNOWN: Der er ikke udført nogen kald med den pågældende integration, siden applikationen blev deployed.
NEEDS_ATTENTION: Der opstod en fejl under seneste forsøg på at kalde med den pågældende integration.

$.details.syncJobdb

Er baseret på Actuator's indbyggede DataSourceHealthIndicator og tjekker, at der kan udføres en "SELECT 1" query på alle applikationens datasources. Query'en udføres i det øjeblik Health-statussiden forespørges. Der vises detaljer om status for de enkelte datasources.

UP: OK
DOWN

Tjekker om den seneste afvikling af jobbet var successfuld. Hvis den ikke var succesfuld, så viser "error" en toString() på den exception der opstod. Der vises eventuelt "timeOfLastExecution", som angiver det seneste tidspunkt, hvor jobbet blev forsøgt afviklet.

UP: OK
UNKNOWN: Der er ikke udført nogen kørsel af jobbet, siden applikationen blev deployed.
NEEDS_ATTENTION: Der opstod en fejl under seneste forsøg på at afvikle jobbet.

$.details.db

Er baseret på Actuator's indbyggede DataSourceHealthIndicator og tjekker, at der kan udføres en "SELECT 1" query på alle applikationens datasources. Query'en udføres i det øjeblik Health-statussiden forespørges. Der vises detaljer om status for de enkelte datasources.

UP: OK
DOWN: Der opstod en fejl under forsøget på at udføre test-query'en på en af applikationens datasources.

forsøget på at udføre test-query'en på en af applikationens datasources.

Eksempel på response, når applikationen er sund

...

Code Block
languagetext
{
    "status": "NEEDS_ATTENTION",
    "details": {
        "organDonorClient": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T17:31:13.245Z"
            }
        },
        "livingWillClient": {
            "status": "NEEDS_ATTENTION",
            "details": {
                "error": "java.io.IOException: HTTP POST failed (404): Not Found",
                "timeOfLastExecution": "2019-07-30T17:31:13.246Z"
            }
        },
        "treatmentWillClient": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T17:31:13.245Z"
            }
        },
        "personalDataCardRegisterClient": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T17:31:13.246Z"
            }
        },
        "scesClient": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T17:31:13.566Z"
            }
        },
        "minLogClient": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T17:31:13.569Z"
            }
        },
        "syncJob": {
            "status": "UP",
            "details": {
                "timeOfLastExecution": "2019-07-30T18:00:05.321Z"
            }
        },
        "db": {
            "status": "UP",
            "details": {
                "primaryDataSource": {
                    "status": "UP",
                    "details": {
                        "database": "MySQL",
                        "hello": 1
                    }
                },
                "stamdataDataSource": {
                    "status": "UP",
                    "details": {
                        "database": "MySQL",
                        "hello": 1
                    }
                }
            }
        }
    }
}

Fejlfinding

Servicens logfiler bør løbende tjekkes for ERROR-logninger.

SyncJob

Direkte kald til synkroniseringsjobbet:

...

URL

...

Funktionalitet

...

<server>/fsk/syncjob/start

...

Starter synkroniseringsjobbet

...

<server>/fsk/syncjob/status

...

Jobbet sørger for oprettelse/nedlæggelse af metadata i DDS registry i takt med ændringer i CPR-registeret (fødsler/dødsfald). Ifm. midlertidige fejl fra DDS, vil jobbet standse. Det er dog også tænkeligt at DDS returnerer en logisk fejl, hvor det ikke giver mening at forsøge igen senere. Derfor er FSK udstyret med en property "jobs.ddssync.max.errors", hvor det er muligt at angive hvor mange fejl jobbet accepterer før det standser. Normalt bør værdien være '0', hvilket betyder at man ikke accepterer fejl. For at tillade jobbet at ignorere den ene fejl, kan værdien sættes til '1', og så bør der kigges nærmere på hvad der gemmer sig bag fejlen, så der kan ske manuelt data-opret.

Følgende logning kan ses hvis SyncJob støder på et midlertidigt problem, og derfor opgiver videre behandling:

Code Block
2018-08-27 15:14:18.627 [main] WARN dk.stamkort.integrations.dds.SyncJob [] - CPR -> DDS synchronization job stopped due to temporary error. Sync will pause and retry later
dk.stamkort.dao.exceptions.DDSTemporaryException: 
 at dk.stamkort.integrations.dds.SyncJob.createDDRegistryEntry(SyncJob.java:245) ~[classes/:?]
 at dk.stamkort.integrations.dds.SyncJob.runSyncPersonIds(SyncJob.java:144) [classes/:?]
 at dk.stamkort.integrations.dds.SyncJobTest.runSynchronizationJob(SyncJobTest.java:329) [test-classes/:?]
 at dk.stamkort.integrations.dds.SyncJobTest.testJobErrorHandlingForTemporaryError(SyncJobTest.java:282) [test-classes/:?]
 at ...

Jobbet starter først igen hvis det kaldes via URL'en i ovenstående tabel.

Nedenstånde logning ses hvis antallet af logiske fejl overskrides, så jobbet opgiver videre behandling:

...

        }
            }
        }
    }
}


Fejlfinding

Servicens logfiler bør løbende tjekkes for ERROR-logninger.

Logfiler og fortolkning af disse

...